Python 处理文件读取的函数
我有一个文件要读。每一行都有名字、年龄、身高和体重。文件中有很多行,我只需要名称。这是我的密码:Python 处理文件读取的函数,python,function,file,Python,Function,File,我有一个文件要读。每一行都有名字、年龄、身高和体重。文件中有很多行,我只需要名称。这是我的密码: import random import string dictionary = {} lst = [] with open("persons.dat","r") as file: for line in file: items = line.split(',') #this makes this ['Bill Johnson', '31', '196', '93']
import random
import string
dictionary = {}
lst = []
with open("persons.dat","r") as file:
for line in file:
items = line.split(',') #this makes this ['Bill Johnson', '31', '196', '93']
key = items[0]
dictionary[key] = []
for i in range(1,len(items)):
dictionary[key].append(int(items[i]))
#print(dictionary)
for key in dictionary.keys():
lst.append(key)
print(lst)
def generateGroup(sizeOfGroup):
for names in range(sizeOfGroup):
random_names = random.choice(lst)
print(random_names)
我的代码按预期获取列表中的所有名称。该代码在generateGroup()之前工作正常
我需要一个函数,该函数将要求列表中的一组(一些数字)的大小,并从该列表中随机给出名称
我不知道如何实现这个功能。我有点了解函数的逻辑,但我不知道应该将函数放在代码中的什么位置(比如哪一行)。随机。sample
就是这样做的
def generateGroup(sizeOfGroup):
print(random.sample(lst, k=sizeOfGroup))
random.sample
返回一个列表。你可以自己积累清单
random_names = []
for names in range(sizeOfGroup):
random_names.append(random.choice(lst))
print(random_names)
但是,random.sample
确保您不会两次选择相同的名称
正确定义generateGroup
后,仍然需要使用参数调用它:
while True:
try:
n = int(input("Enter a number: "))
break
except ValueError:
print("That's not an integer, try again")
generateGroup(n)
这并不能真正回答我的问题,你的意思是,你从哪里得到传递给generateGroup
(顺便提一下,它不能按预期工作,因为它只打印一个随机名称)?我的意思是,例如:现在它只打印名称列表,但def generateGroup(sizeOfGroup)函数根本不工作,好像它什么都不印。它应该使用我从读取该文件中创建的lst,函数应该询问一些数字,比如4,然后从该lst中打印出4个随机名称。您是否调用generateGroup
?你展示的只是定义它。