Python 嵌套用于扩展现有列表的循环
给我解释一下这个代码。这是一个以字母形式将整数输入输出的程序。如果我输入35,那么输出将是35。我了解其中的大部分内容,但想知道如何从tens中获取值Python 嵌套用于扩展现有列表的循环,python,python-3.x,Python,Python 3.x,给我解释一下这个代码。这是一个以字母形式将整数输入输出的程序。如果我输入35,那么输出将是35。我了解其中的大部分内容,但想知道如何从tens中获取值 twenty thirty forty fifty sixty seventy eighty ninety 代码是: num = int(input("Enter the number:")) numbers = ("zero one two three four five six seven eight nine".split()) numb
twenty thirty forty fifty sixty seventy eighty ninety
代码是:
num = int(input("Enter the number:"))
numbers = ("zero one two three four five six seven eight nine".split())
numbers.extend("ten eleven twelve thirteen fourteen fifteen sixteen".split())
numbers.extend("seventeen eighteen nineteen".split())
numbers.extend(tens if ones == "zero" else (tens + " " + ones)
for tens in "twenty thirty forty fifty sixty seventy eighty ninety".split()
for ones in numbers[0:10])
print(numbers[num])
您在最后一行中看到的两个主要概念是和。看一看 为了更好地理解正在发生的事情,我们将把这条线分成更简单的部分: TENS
for tens in "twenty thirty forty fifty sixty seventy eighty ninety".split():
print(tens)
numbers = ("zero one two three four five six seven eight nine".split())
for ones in numbers[0:10]:
print(ones)
产出:二三四五六七八九
前面的for循环对应于以下列表:
(tens for tens in "twenty thirty forty fifty sixty seventy eighty ninety".split())
(ones for ones in numbers[0:10])
(tens if ones == "zero" else (tens + " " + ones) for tens in "twenty thirty forty fifty sixty seventy eighty ninety".split() for ones in numbers[0:10])
如果不使用打印
,则返回一个生成器。如果要查看结果,请执行以下操作:
print(list(tens for tens in "twenty thirty forty fifty sixty seventy eighty ninety".split()))
一个
for tens in "twenty thirty forty fifty sixty seventy eighty ninety".split():
print(tens)
numbers = ("zero one two three four five six seven eight nine".split())
for ones in numbers[0:10]:
print(ones)
输出:零一二三四五六七八九
前面的for循环对应于以下列表:
(tens for tens in "twenty thirty forty fifty sixty seventy eighty ninety".split())
(ones for ones in numbers[0:10])
(tens if ones == "zero" else (tens + " " + ones) for tens in "twenty thirty forty fifty sixty seventy eighty ninety".split() for ones in numbers[0:10])
循环合并
for tens in "twenty thirty forty fifty sixty seventy eighty ninety".split():
print(tens)
numbers = ("zero one two three four five six seven eight nine".split())
for ones in numbers[0:10]:
print(ones)
我们可以合并它们:
for tens in "twenty thirty forty fifty sixty seventy eighty ninety".split():
for ones in numbers[0:10]:
print(tens + " " + ones)
OUTPUT: twenty zero
twenty one
twenty two
twenty three
twenty four
twenty five
twenty six
twenty seven
twenty eight
twenty nine
thirty zero
thirty one
thirty two
[...]
由于我们不太喜欢twentzero
,我们将添加一个子句:
for tens in "twenty thirty forty fifty sixty seventy eighty ninety".split():
for ones in numbers[0:10]:
if ones == "zero":
print(tens)
else:
print(tens + " " + ones)
OUTPUT:
twenty
twenty one
twenty two
twenty three
twenty four
[...]
这与列表理解的行为相同:
(tens for tens in "twenty thirty forty fifty sixty seventy eighty ninety".split())
(ones for ones in numbers[0:10])
(tens if ones == "zero" else (tens + " " + ones) for tens in "twenty thirty forty fifty sixty seventy eighty ninety".split() for ones in numbers[0:10])
它返回一个列表(*),该列表将扩展到您的数字列表。
最后,您输入的与列表中单词索引相对应的数字运行正常,没有问题。但是我想知道代码中的“十”是如何从“二十三四十五十六十七十八十九十”中取值的。假设我输入34,那么tens如何从“230405060708090”中得到“30D”@khelwood刚刚对代码进行了c&p处理,它按照预期运行,没有任何更改。你认为这有什么不对?“你说得对。我看错了,非常感谢