我想知道是否有更简洁的方法从列表中重新分配随机项:首先将原始项设置为变量,然后使用另一个预设变量替换列表中的项。
listofwords是一个包含9个项目的列表。
random_val = random.randint(0,8)
removed_word = listofwords[randomval]
listofwords[randomval] = substitute_word
答案 0 :(得分:2)
您可以使用tuple
打包/解包来对交换进行单行处理,但这是关于它的;并没有真正改善代码:
listofwords[randomval], removed_word = substitute_word, listofwords[randomval]
答案 1 :(得分:0)
我认为你可以做的唯一缩短代码的方法是将最后两个分配合并在一行上。
removed_word, listofwords[randomval] = listofwords[randomval], substitute_word
但这并没有真正使代码更简洁。如果你必须这么做,你可以把这个程序变成一个函数。但是,没有内置方法可以做到这一点,所以你的方式似乎很好。
答案 2 :(得分:0)
要将变量分配给列表项,最短的方法是:
OldValue = ListOfWords[index]
更改列表中项目的最短路径是:
ListOfWords[index] = NewValue
所以不,没有更短的路。
但是,有一种简单的方法来交换变量。
ListOfWords = ["Hello", "Moon"]
Value = "World"
如果使用要更改的值创建Value,请使用:
ListOfWords[1], Value = Value, ListOfWords[1]
这会将Value
更改为ListOfWords[1]
,将ListOfWords[1]
更改为Value
。在shell中:
>>> ListOfWords[1], Value = Value, ListOfWords[1]
>>> Value = "World"
>>> ListOfWords
['Hello', 'World']
>>> Value
'Moon'
正如其他答案所示,您可以使用变量swap将其替换为ListOfWords[1], OldValue = NewValue, ListOfWords[1]