首页 > 解决方案 > 为什么它只打印二维列表中的 4 个值?

问题描述

我正在将联系人终端应用程序作为一个迷你项目制作,但我不知道如何显示所有联系人。我想根据它的长度为其创建一个 for 循环,如下所示:

 for i in range(len(contactBook)):
     print(contactBook[0][indexToPrint], contactBook[1][indexToPrint])
     indexToPrint += 1     

它是功能的一部分:

    indexToPrint = 0
    if not contactBook:
        print('Your contacts are empty')
    else:
         for i in range(len(contactBook)):
            print(contactBook[0][indexToPrint], contactBook[1][indexToPrint])
            indexToPrint += 1

我可以输入无限数量的联系人,但它只打印 4 个值(2 个姓名和 2 个数字)这是整个代码,我怎样才能让它打印更多或所有联系人?

contactsBookNames = []
contactsBookNumbers = []
contactBook = [contactsBookNames, contactsBookNumbers]
def seeYourContactList():
    indexToPrint = 0
    if not contactBook:
        print('Your contacts are empty')
    else:
         for i in range(len(contactBook)):
            print(contactBook[0][indexToPrint], contactBook[1][indexToPrint])
            indexToPrint += 1

def toAddContact():
    while True:
        toAdd = input("Would you like to add a contact? ")
        if toAdd == "Yes":
            addingContact()
            break
        else:
            seeYourContactList()
            break
def addingContact():
    contactsBookNames.append(input("What name do you want for this contact? "))
    contactsBookNumbers.append(input("And now for the number... "))
    addingMore()
def addingMore():
    while True:
        toAddpt2 = input("Would you like to add another contact? ")
        if toAddpt2 == "Yes":
            addingContact()
            break
        else:
            seeYourContactList()
            break
toAddContact()

标签: python

解决方案


可能是因为contactBook是 Nx2 列表,而不是您的代码假设的 2xN。您需要print(contactBook[0]),print(contactBook[1])进行检查,并将其输出编辑到问题中。

至于你的循环:

  • 你想运行循环变量ilen(contactBook[0])而不是len(contactBook)
  • 它不需要单独的变量来indexToPrint复制i已经在做的事情

所以改变你现有的代码: indexToPrint = 0 for i in range(len(contactBook)): print(contactBook[0][indexToPrint], contactBook[1][indexToPrint]) indexToPrint += 1

这只是一种非常复杂的说法:

for i in range(len(contactBook[0])):
    print(contactBook[0][i], contactBook[1][i])

推荐阅读