list打印多个元素而不是仅仅2个



有一个小问题,使用下面的代码,当在列表中打印字符串时,超过2将导致我打印的字符串的两倍。

print("Geneaology for: nt" + user_name + "tt" + user_birthday)
print("Parents: ")
# Prints out parents names and date of birth
for x in parent_names:
for y in parent_birthdays:
print(str("t" + x + "tt" + y))
# Prints out siblngs names and date of birth
print("Siblings: ")
for x in sibling_names:
for y in sibling_birthdays:
print(str("t" + x + "tt" + y))
# Prints out grandparents names and date of birth
print("Grandparents: ")
for x in grandparent_names:
for y in grandparent_birthdays:
print(str("t" + x + "tt" + y))

带"parent_name"one_answers";parent_birthday"列表只有一个字符串,我得到这个:

Geneaology for: 
jm              01/01/01
Parents:
aa              01/01/01

有两个字符串在每个,我得到这个:

Geneaology for: 
jm              01/01/01
Parents:
aa              01/01/01
aa              02/02/02
bb              01/01/01
bb              02/02/02

除了改变某些东西和变量的位置外,我还没有尝试太多,所以任何帮助都是感激的。

这里的问题是parent_namesparent_birthdays是并行列表。您应该将其存储在单个列表中,其中每个条目都是包含该个人数据的字典。你可以这样做你想做的,但是你真的需要重新组织你的数据。

for x,y in zip(parent_names, parent_birthdays):
print("t" + x + "tt" + y)

在已经是字符串的东西上调用str()函数是愚蠢的。

你会考虑给父母做一本字典吗?

parent = {
"name": "aa",
"birthday": "01/01/1995"
}

:

# Where "parents" is a list of parent dictionaries
for parent in parents:
print("t" + parent['name'] + "tt" + parent['birthday'])

相关内容

  • 没有找到相关文章

最新更新