Python:如何从数组中的数组中提取项?

Python:如何从数组中的数组中提取项?,python,arrays,python-3.x,Python,Arrays,Python 3.x,我有两个数组,其中一个是包含数组的数组 wordsEn = ["why", "because", "go"] wordsDe = [["warum"], ["weil", "da"], ["los", "gehen"]] 我的代码是 step = 0 size = 3 while step < size: word = input("Enter name of word: ") print("your word was " + word) if word in

我有两个数组,其中一个是包含数组的数组

wordsEn = ["why", "because", "go"] 
wordsDe = [["warum"], ["weil", "da"], ["los", "gehen"]]
我的代码是

step = 0
size = 3
while step < size:
    word = input("Enter name of word: ")
    print("your word was " + word)
    if word in wordsEn:
       pos = wordsEn.index(word)
       print(wordsDe[pos])
       step = step + 1
    else:
        print("word not found.")
如果我要求它打印单词,它会打印

如何使其打印为列表,如

威尔 da
单词de是一个列表,列表中的3个对象是[warum]、[weil,da]和[los,gehen]

调用wordsDe[1]将为您提供列表中的第二个对象。。。[好的,爸爸]

如果你想打印的话

weil
da

您必须先调用wordsDe[1][0],然后再调用wordsDe[1][1]

将列表的项目更改为字符串:

wordsEn = ["why", "because", "go"] 
wordsDe = [["warum"], ["weil", "da"], ["los", "gehen"]]

step = 0 ;size = 3 
while step < size: 
    word = input("Enter name of word: ") 
    print("your word was " + word) 
    if word in wordsEn: 
        pos = wordsEn.index(word) 
        w=''
        for wd in wordsDe[pos]:
            w+=wd+' '
        print(w)
        step = step + 1 
    else: 
        print("word not found.")

对于数组数组,我们应该使用二维来访问单个元素。

可以使用嵌套循环。 在print函数中使用两个循环和一个分隔符参数。 这里不需要分离器


您可以循环使用wordsDe[pos],只需逐个打印内容

step = 0
size = 3
while step < size:
    word = input("Enter name of word: ")
    print("your word was " + word)
    if word in wordsEn:
       pos = wordsEn.index(word)
       for data in wordsDe[pos]:
           print (data)
       step = step + 1
    else:
        print("word not found.")

由于列表是嵌套的,因此表示包含列表的列表。您必须根据所需的输出指定此类列表的输出格式

对于给定的情况,您可以使用以下内容:

print*wordsDe[1],sep='\n'首先使用'*'解压列表中的所有项目, 然后告诉“print”使用“\n”分隔每个项目
您还可以通过索引访问内部数组,例如wordsDe[1][0]应打印“weil”。只要索引有效,您就可以继续这样做,例如wordsDe[1][0][0]应该打印“w”。print*wordsDe[1],sep='\n'我不明白这段代码与您的问题有什么关系?我想您指的是结束参数,而不是sep,这是默认值,没有必要。sep仅在通过多个argumentsWhoops时才相关,已修复。必须先调用wordsDe[1][0],然后再调用wordsDe[1][1]-不太准确。。。查看其他答案,将列表打印在一行中,而不是要求什么。无论如何,通过简单的打印就可以更容易地实现。如果您只需在words中打印words,那么for循环就会简单得多
step = 0
size = 3
while step < size:

    word = input("Enter name of word: ")
    print("your word was " + word)
    if word in wordsEn:
        pos = wordsEn.index(word)

        for item in wordsDe[pos]:
            print(item,sep="\n")

        step = step + 1
    else:
        print("word not found.")
step = 0
size = 3
while step < size:
    word = input("Enter name of word: ")
    print("your word was " + word)
    if word in wordsEn:
       pos = wordsEn.index(word)
       for data in wordsDe[pos]:
           print (data)
       step = step + 1
    else:
        print("word not found.")