python - 为什么我的列表中没有正确数量的对象?
问题描述
我正在尝试创建一个函数来生成元组列表。我有这个:
import random
def generate_list(count):
l_names = ['scott', 'anderson', 'philips', 'peterson', 'parker']
f_names = ['james', 'chris', 'lisa', 'mary', 'kate']
names = []
counter = 0
for name in f_names:
counter += 1
my_tuple = (counter, f_names[random.randint(0, len(f_names)-1)], \
l_names[random.randint(0, len(l_names)-1)])
names.append(my_tuple)
return my_tuple
people = generate_list(3)
print(f"People list: {people}")
当我使用 generate_list(3) 时,我希望列表中有三个元组。但我只得到一个。我觉得错误出在 for 循环及其 return 语句中的某个地方。但我无法弄清楚。
任何人都可以帮忙吗?
谢谢
解决方案
更改for name in f_names
为for name in range(count)
和return mytuple
,return names
因为您返回的是一个元组而不是名称列表。
import random
def generate_list(count):
l_names = ['scott', 'anderson', 'philips', 'peterson', 'parker']
f_names = ['james', 'chris', 'lisa', 'mary', 'kate']
names = []
counter = 0
for name in range(count): #change f_names to count
counter += 1
my_tuple = (counter, random.choice(f_names), \
random.choice(l_names))
names.append(my_tuple)
return names #return names not my_tuples
people = generate_list(3)
print(f"People list: {people}")
推荐阅读
- android - 使用路径别名指向文件夹会导致 Gradle 错误
- testing - Jmet评估
- list - 列表理解打印中的无、无等
- python - Lambda - Python - CSV 到 NDJSON - 无法转储大文件
- android - Android、NetworkScheduler:以白名单模式运行。忽略任务
- css - 如何让子 div 匹配父级的高度?
- javascript - 在 Vue.js 中加载更多数据时保持相同的垂直坐标
- python - Pandas:条件滚动块计数
- sql-server - 用于提取到 SQL Server 的引用文本限定符
- google-chrome - 使用 chrome 时,使用对象 URL pdf 文件不会从 aws s3 下载。我收到“失败 -Forbidden 错误。适用于 Firefox 和 Edge