python - Python中带有for循环的Zip方法
问题描述
我正在尝试从 4 个不同的列表中获取以下输出,我需要调用 address_machine 方法并从列表中压缩项目并使用 for 循环遍历新列表,然后将它们打印在新行上 --> 预期输出以下:
["T Cruise","D Francis","C White"]
["2 West St","65 Deadend Cls","15 Magdalen Rd"]
["Canterbury", "Reading", "Oxford"]
["CT8 23RD", "RG4 1FG", "OX4 3AS"]
我的方法如下所示:
def address_machine(name, street_address, town, postcode):
address = "{0},{1},{2},{3}".format(name, street_address, town, postcode)
return address
print([address_machine(name, street_address, town, postcode) for name, street_address, town, postcode in
zip(["T Cruise", "D Francis", "C White"], ["2 West St", "65 Deadend Cls", "15 Magdalen Rd"],
["Canterbury", "Reading", "Oxford"], ["CT8 23RD", "RG4 1FG", "OX4 3AS"])])
这是一个问题,因为我得到的输出看起来像这样,并且全部在一行上:
['T Cruise,2 West St,Canterbury,CT8 23RD', 'D Francis,65 Deadend Cls,Reading,RG4 1FG', 'C White,15 Magdalen Rd,Oxford,OX4 3AS']
我需要如何编写这个 Python adress_machine 函数来获得预期的输出?
解决方案
你可以使用正常for
的循环
for name, street_address, town, postcode in zip(["T Cruise", "D Francis", "C White"], ["2 West St", "65 Deadend Cls", "15 Magdalen Rd"],
["Canterbury", "Reading", "Oxford"], ["CT8 23RD", "RG4 1FG", "OX4 3AS"]):
print([name, street_address, town, postcode])
或首先创建包含所有元素的列表,然后for
-loop 来显示它
data = [[name, street_address, town, postcode] for name, street_address, town, postcode in zip(["T Cruise", "D Francis", "C White"], ["2 West St", "65 Deadend Cls", "15 Magdalen Rd"],
["Canterbury", "Reading", "Oxford"], ["CT8 23RD", "RG4 1FG", "OX4 3AS"])]
for item in data:
print(item)
如果您期望列表的结果,不明白为什么要使用address_machine()
将列表转换为字符串的函数。
推荐阅读
- node.js - 当其中一个请求花费太多时间时,如何同时响应不同的请求
- extjs - How to set a record Dirty ExtJs 6
- amazon-web-services - 如何使用 ansible 将负载均衡器添加到 aws ecs 服务
- javascript - javascript 类方法定义的最佳实践来计算带有配料的食品价格
- javascript - 担心 EcmaScript 2015 模块中的循环引用
- java - 为什么 JdbcClientTokenServices 不保存刷新令牌?
- javascript - Javascript让提升行为问题
- javascript - Cypress 如何处理错误
- python - 自动驾驶汽车没有通过 Q-Learning 改进
- informatica - 安装 informatica power center 9.5.1 时无法连接 oracle 数据库 (12c)