【发布时间】:2018-10-09 13:03:42
【问题描述】:
枚举时是否可以将单个值列表(例如[5])索引(例如4)转换为整数?我正在尝试制作一个程序,该程序使用给定的单词和数字创建一个随机用户名,如果之前已经使用过一个单词,我想删除它:
import random
# data (words/numbers)
words = ['Cool', 'Boring', 'Tall', 'Short']
numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
# words
word_1 = random.choice(words)
selected_word = [i for i,x in enumerate(words) if x == word_1]
words.pop(selected_word)
word_2 = random.choice(words)
# numbers
number_1 = random.choice(numbers)
number_2 = random.choice(numbers)
# printing username
print(word_1+word_2+number_1+number_2)
【问题讨论】:
-
你到底在问什么?如果您有一个单值列表
lst=[5],并使用lst[4]对其进行索引,那将是IndexError,因为没有那么多值。 -
或者你只是问如何把一个字符串变成一个int,所以在
for number in numbers:,你可以用4、5等来代替'4'、@ 987654329@等?如果是这样,您只需在循环内的代码中使用int(number)而不是number。 -
FWIW,从列表中间删除东西效率不高,因此当您有选择时,通常最好使用不同的逻辑。另外,如果您想创建多个用户名会怎样?我推荐 abarnert 的方法:使用
sample。我可能会使用randrange生成一个 2 位数字,然后将其转换为字符串,而不是从数字字符串列表中选择。
标签: python list indexing integer