[英]Way to pass multiple parameters in a for loop?
我的代码:
seperated = startContent.split(' ')
seperatedNum = len(seperated)
#Ask for user input
for word in seperated and for i in seperatedNum:
if word == 'ADJECTIVE':
seperated[i] = input('Enter an adjective:')
elif word == 'NOUN':
seperated[i] = input('Enter a noun:')
elif word == 'ADVERB':
seperated[i] = input('Enter an adverb:')
elif word == 'VERB':
seperated[i] = input('Enter a verb:')
基本上每次遇到以下单词时都会询问用户输入(每个单词可以有多个)。
我得到了我的句子,用 split 命令将它拆分成一个列表。 并为每个单词运行循环。 然后我想使用list[x] = 'replacement'
方法编辑列表。
在单词seperated
,返回列表项。 所以我需要另一个参数传递给它,例如i in len(list)
,然后获取单词的准确索引。 我不能使用list.index(str)
因为当文本有多次迭代时它返回字符串的第一个索引。
您正在寻找一种在for
循环中传递多个参数的方法:在这方面for
循环没有什么特别之处。 循环将迭代给定的序列,并且每次迭代都会将当前元素分配给给定的左侧。
for LEFT_HAND_SIDE in SEQUENCE
Python 还支持在赋值期间“自动”解包序列,如以下示例所示:
>>> a, b = (4, 2)
>>> a
4
>>> b
2
总之,您可以将for
循环左侧的多个变量与一系列序列组合在一起:
>>> for a, b in [(1, 2), (3, 4)]:
... print(a)
... print(b)
...
1
2
3
4
该for
循环有两个赋值a, b = (1, 2)
和a, b = (3, 4)
。
在您的特定情况下,您希望将序列中元素的值与其索引组合在一起。 内置函数enumerate
在这里派上用场:
>>> enumerate(["x", "y"])
<enumerate object at 0x7fc72f6685a0>
>>> list(enumerate(["x", "y"]))
[(0, 'x'), (1, 'y')]
所以你可以像这样写你的for
循环:
for i, word in enumerate(seperated)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.