使用成对的列表列表循环列表
Loop a list with a list of lists in pairs
编辑:在我试图举例说明编码问题时,我在我想要的结果方面犯了一个错误。我已将结果更新为我实际期望的结果。
我有一个名为 list_of_lists_1
的列表列表,我希望与
姊妹列表 (如果这是编码中的术语) 称为 list_of_lists_2
,第三个列表称为 person_list
。 list_of_lists_1
和 list_of_lists_2
在总数和每个列表列表中具有相同数量的元素。 person_list
中的每个元素都应与 list_of_lists_1
和 list_of_lists_2
中的相应列表循环,即 person_a
将与列表 [1, 3, 5]
和 [2, 4, 6]
串联循环。正如 persin_b
将循环使用 ["7", "9", "11"]
和 ["8", "10", "12"]
等
# create lists
list_of_lists_1 = [["1", "3", "5"], ["7", "9", "11"], ["13", "15", "17"]]
list_of_lists_2 = [["2", "4", "6"], ["8", "10", "12"], ["14", "16", "18"]]
person_list = ["person_a", "person_b", "person_c"]
我试过下面的代码。然而,输出只共计大约50 pct。期望的结果。
# loop
for i in range(0, len(list_of_lists_1)):
outcome = person_list[i] + list_of_lists_1[i][i] + list_of_lists_2[i][i]
# some functions and other interesting stuff!
print(outcome)
person_a12
person_b910
person_c1718
# desired outcome (Has been edited)
person_a12
person_a34
person_a56
person_b78
person_b910
person_b1112
person_c1314
person_c1516
person_c1718
我怎样才能达到预期的结果?
谢谢。
使用zip()
并行循环列表。
然后你可以使用嵌套循环来组合list_of_lists_X
中嵌套列表的元素。
鉴于:
list_of_lists_1 = [["1", "3", "5"], ["7", "9", "11"], ["13", "15", "17"]]
list_of_lists_2 = [["2", "4", "6"], ["8", "10", "12"], ["14", "16", "18"]]
person_list = ["person_a", "person_b", "person_c"]
您的结果可以通过以下方式构建:
for suffixes_1, suffixes_2, name in zip(list_of_lists_1, list_of_lists_2, person_list):
for s1, s2 in zip(suffixes_1, suffixes_2):
outcome = name + s1 + s2
print(outcome)
@Barmar 的解决方案更简洁一些,但我还是 post 这个。
list_of_lists_1 = [["1", "3", "5"], ["7", "9", "11"], ["13", "15", "17"]]
list_of_lists_2 = [["2", "4", "6"], ["8", "10", "12"], ["14", "16", "18"]]
person_list = ["person_a", "person_b", "person_c"]
for n,p in enumerate(person_list):
output = p
for digits in zip(list_of_lists_1[n],list_of_lists_2[n]):
output += digits[0]+digits[1]
print(output)
通过扩展@Barmar 的回答 (),这里是您可以如何使用列表理解来做到这一点:
list_of_lists_1 = [["1", "3", "5"], ["7", "9", "11"], ["13", "15", "17"]]
list_of_lists_2 = [["2", "4", "6"], ["8", "10", "12"], ["14", "16", "18"]]
person_list = ["person_a", "person_b", "person_c"]
result = (
f"{name}{s1}{s2}"
for suffixes_1, suffixes_2, name in zip(list_of_lists_1, list_of_lists_2, person_list)
for s1, s2 in zip(suffixes_1, suffixes_2)
)
for outcome in result:
print(outcome)
给你:
person_a12
person_a34
person_a56
person_b78
person_b910
person_b1112
person_c1314
person_c1516
person_c1718
编辑:在我试图举例说明编码问题时,我在我想要的结果方面犯了一个错误。我已将结果更新为我实际期望的结果。
我有一个名为 list_of_lists_1
的列表列表,我希望与
姊妹列表 (如果这是编码中的术语) 称为 list_of_lists_2
,第三个列表称为 person_list
。 list_of_lists_1
和 list_of_lists_2
在总数和每个列表列表中具有相同数量的元素。 person_list
中的每个元素都应与 list_of_lists_1
和 list_of_lists_2
中的相应列表循环,即 person_a
将与列表 [1, 3, 5]
和 [2, 4, 6]
串联循环。正如 persin_b
将循环使用 ["7", "9", "11"]
和 ["8", "10", "12"]
等
# create lists
list_of_lists_1 = [["1", "3", "5"], ["7", "9", "11"], ["13", "15", "17"]]
list_of_lists_2 = [["2", "4", "6"], ["8", "10", "12"], ["14", "16", "18"]]
person_list = ["person_a", "person_b", "person_c"]
我试过下面的代码。然而,输出只共计大约50 pct。期望的结果。
# loop
for i in range(0, len(list_of_lists_1)):
outcome = person_list[i] + list_of_lists_1[i][i] + list_of_lists_2[i][i]
# some functions and other interesting stuff!
print(outcome)
person_a12
person_b910
person_c1718
# desired outcome (Has been edited)
person_a12
person_a34
person_a56
person_b78
person_b910
person_b1112
person_c1314
person_c1516
person_c1718
我怎样才能达到预期的结果?
谢谢。
使用zip()
并行循环列表。
然后你可以使用嵌套循环来组合list_of_lists_X
中嵌套列表的元素。
鉴于:
list_of_lists_1 = [["1", "3", "5"], ["7", "9", "11"], ["13", "15", "17"]]
list_of_lists_2 = [["2", "4", "6"], ["8", "10", "12"], ["14", "16", "18"]]
person_list = ["person_a", "person_b", "person_c"]
您的结果可以通过以下方式构建:
for suffixes_1, suffixes_2, name in zip(list_of_lists_1, list_of_lists_2, person_list):
for s1, s2 in zip(suffixes_1, suffixes_2):
outcome = name + s1 + s2
print(outcome)
@Barmar 的解决方案更简洁一些,但我还是 post 这个。
list_of_lists_1 = [["1", "3", "5"], ["7", "9", "11"], ["13", "15", "17"]]
list_of_lists_2 = [["2", "4", "6"], ["8", "10", "12"], ["14", "16", "18"]]
person_list = ["person_a", "person_b", "person_c"]
for n,p in enumerate(person_list):
output = p
for digits in zip(list_of_lists_1[n],list_of_lists_2[n]):
output += digits[0]+digits[1]
print(output)
通过扩展@Barmar 的回答 (
list_of_lists_1 = [["1", "3", "5"], ["7", "9", "11"], ["13", "15", "17"]]
list_of_lists_2 = [["2", "4", "6"], ["8", "10", "12"], ["14", "16", "18"]]
person_list = ["person_a", "person_b", "person_c"]
result = (
f"{name}{s1}{s2}"
for suffixes_1, suffixes_2, name in zip(list_of_lists_1, list_of_lists_2, person_list)
for s1, s2 in zip(suffixes_1, suffixes_2)
)
for outcome in result:
print(outcome)
给你:
person_a12
person_a34
person_a56
person_b78
person_b910
person_b1112
person_c1314
person_c1516
person_c1718