繁体   English   中英

在for循环中传递多个参数的方法?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM