import random
names_list = []
emails_list = []
original_dict = {}
assigned_dict = {}
emails_list2 = emails_list
# ------------------------ Saving Data -------------------------- #
while True:
name = str(input("Enter your name: "))
if name == "e":
break
email = str(input(f"Enter {name}'s email: "))
if email == "e":
break
original_dict[name] = email
# ------------------------ Assigning Data -------------------------- #
for each_name in names_list:
chosen_email = random.choice(emails_list2)
print(chosen_email)
assigned_dict[each_name] = chosen_email
print(names_list)
print(emails_list)
print(random.choice(emails_list))
print(original_dict)
print(assigned_dict)
这一行上面是我的整个代码...... 问题是,当我输入
random.choice([1, 2, 3, 4, 5])
时,我能够得到所需的结果,因为它从列表中为我提供了一个随机项目。但是当我输入 random.choice(emails_list2)
时,它没有给我想要的输出。相反,它给出了一个错误:
Traceback (most recent call last):
File "C:\Users\hp\PycharmProjects\SecretSanta_Program\main.py", line 36, in <module>
print(random.choice(emails_list))
File "C:\Users\hp\AppData\Local\Programs\Python\Python39\lib\random.py", line 346, in choice
return seq[self._randbelow(len(seq))]
IndexError: list index out of range
问题:我该怎么做才能得到我想要的结果??? (这是从名为 emails_list2 的列表中获取一个随机项目
(请帮助我......我是 Python 和 StackOverflow 的新手)
我预计会有很多结果,包括来自
的随机项目emails_list
列表
当我运行你的代码时,我收到错误
IndexError('Cannot choose from an empty sequence')
。我不确定你是如何得到错误 IndexError: list index out of range
的,因为你的列表 emails_list
是空的,即不包含任何元素。
for
循环中的代码永远不会执行,因为names_list
也是一个空数组,因此它没有可以迭代的元素。如果您想从用户输入的电子邮件中随机选择一封电子邮件,您首先需要将电子邮件保存在适当的列表中:
while True:
name = str(input("Enter your name: "))
if name == "e":
break
names_list.append(name)
email = str(input(f"Enter {name}'s email: "))
if email == "e":
break
emails_list.append(email)
original_dict[name] = email
现在我得到这个输出:
Enter your name: test
Enter test's email: test-email
Enter your name: hello
Enter hello's email: hello-email
Enter your name: world
Enter world's email: world-email
Enter your name: e
hello-email
world-email
world-email
['test', 'hello', 'world']
['test-email', 'hello-email', 'world-email']
world-email
{'test': 'test-email', 'hello': 'hello-email', 'world': 'world-email'}
{'test': 'hello-email', 'hello': 'world-email', 'world': 'world-email'}
由于我们现在将用户输入的数据添加到列表中,因此可以从列表中选择随机元素。