python - 将元组列表混合并迭代到文本模板中
问题描述
我得到了一个列表和一个元组列表,每个都包含字符串:
names = ['joseph', 'parker', 'john']
interests = [('apples', 'design'),('bananas','economy'),('pears','medicine')]
text_template = 'hi my name is {name}, i like {interests}, im studying {interests} everytime / '
我正在努力实现这一目标:
hi my name is joseph, i like apples, im studying design everytime /
hi my name is joseph, i like bananas, im studying economy everytime /
hi my name is joseph, i like pears, im studying medicine everytime
hi my name is parker, i like apples, im studying design everytime /
hi my name is parker, i like bananas, im studying economy everytime /
hi my name is parker, i like pears, im studying medicine everytime
hi my name is john, i like apples, im studying design everytime /
hi my name is john, i like bananas, im studying economy everytime /
hi my name is john, i like pears, im studying medicine everytime
谢谢大家!!
解决方案
我建议对您的模板稍作更改,以免字段名称重复。
text_template = 'hi my name is {name}, i like {interest}, im studying {degree} everytime / '
现在你可以这样做:
>>> from itertools import product
>>> for name, (interest, degree) in product(names, interests):
...: print(text_template.format(name=name, interest=interest, degree=degree))
...:
hi my name is joseph, i like apples, im studying design everytime /
hi my name is joseph, i like bananas, im studying economy everytime /
hi my name is joseph, i like pears, im studying medicine everytime /
hi my name is parker, i like apples, im studying design everytime /
hi my name is parker, i like bananas, im studying economy everytime /
hi my name is parker, i like pears, im studying medicine everytime /
hi my name is john, i like apples, im studying design everytime /
hi my name is john, i like bananas, im studying economy everytime /
hi my name is john, i like pears, im studying medicine everytime /
...如果空行很重要:
>>> for i, (name, (interest, degree)) in enumerate(product(names, interests), 1):
...: print(text_template.format(name=name, interest=interest, degree=degree))
...: if not i%len(names):
...: print()
...:
hi my name is joseph, i like apples, im studying design everytime /
hi my name is joseph, i like bananas, im studying economy everytime /
hi my name is joseph, i like pears, im studying medicine everytime /
hi my name is parker, i like apples, im studying design everytime /
hi my name is parker, i like bananas, im studying economy everytime /
hi my name is parker, i like pears, im studying medicine everytime /
hi my name is john, i like apples, im studying design everytime /
hi my name is john, i like bananas, im studying economy everytime /
hi my name is john, i like pears, im studying medicine everytime /
推荐阅读
- r - 如何在r中的时间序列分析图中添加条形图y轴中的值总数
- security - 无限9'
' 不是允许的元素 - tvos - 在 Apple 描述文件管理器中管理 AppleTV
- build - Chromium 的唯一 GPU 构建解决方案
- c++ - std::deque 是可移动构造的,但不是“nothrow”
- django - 使用 zappa 部署的 aws lambda django 应用程序 - python 导入优先级
- excel - VLOOKUP 不适用于通过 VBA 的所有行
- c# - FlowListView 不使用 Observable 更新 Ui
- javascript - 解构 res.headers
- reactjs - 很难在 Android 中选择 TextInput 条目