Python 如何使用随机数打印字典中字符串的第一项,并打印剩余的数字?
我正在创建一个函数来打开和读取一个文本文件,用逗号分隔。该函数将创建文本文件的字典,并打印出每个字符串中的第一项,以及一个随机数(1-10)作为键。然后,这些值将是各自字符串中的剩余数字 档案费Python 如何使用随机数打印字典中字符串的第一项,并打印剩余的数字?,python,python-3.x,dictionary,random,Python,Python 3.x,Dictionary,Random,我正在创建一个函数来打开和读取一个文本文件,用逗号分隔。该函数将创建文本文件的字典,并打印出每个字符串中的第一项,以及一个随机数(1-10)作为键。然后,这些值将是各自字符串中的剩余数字 档案费 January,900,483,394,883,649 February,200,329,596,283,972 March,120,237,923,102,787 我已经能够把这本词典打印出来,但输出结果与我想要的相差甚远 import random def dictionaryTest
January,900,483,394,883,649
February,200,329,596,283,972
March,120,237,923,102,787
我已经能够把这本词典打印出来,但输出结果与我想要的相差甚远
import random
def dictionaryTest():
openfile= open('example.txt', 'r')
monthData = openfile.readlines()
openfile.close
dictionary = {}
rNum = random.randrange(1,11)
for lines in monthData:
info = line.split()
key, values = info[0], info[1:]
d[key] = info[0], rNum
values = info[1:]
print(dictionary)
预期产出:
{('January, 8'): [900,483,394,883,649],('February, 1'):
[200,329,596,283,972],('March, 4'): [120,237,923,102,787]}
实际产量:
{'January, 900, 483, 395, 883, 649':('January, 900, 483, 395, 883,
649'), 'February, 200,329,596,283,972':('February,
200,329,596,283,972'), 'March, 120,237,923,102,787':('March,
120,237,923,102,787')}
您的代码应该如下所示,以获得上述输出。当需要使用逗号分割时,必须在split()中提及它,如下所示。如果每个字典键需要不同的随机数,则必须将
rNum=random.randrange(1,11)
代码行放入for循环中
import random
openfile= open('example.txt', 'r')
monthData = openfile.readlines()
openfile.close
dictionary = {}
for line in monthData:
rNum = random.randrange(1,11)
info = line.split(',')
key = info[0], rNum
value = info[1:]
for i in range(len(value)):
value[i] = int(value[i])
dictionary[key] = value
print(dictionary)
以下是我的尝试:
import csv
import random
def dictTest():
with open ("/Users/richard/Desktop/python testing/test.csv", 'r') as csvfile:
output = csv.reader(csvfile)
dictionary = {}
for row in output:
rNum = random.randrange(1,11)
row[0] += " "+ str(rNum)
list_ints =[]
for element in row[1:]:
list_ints.append(int(element))
dictionary[row[0]] = list_ints
print(dictionary)
dictTest()
输出:
info=line.split()
-。。。。在空格处拆分-不是逗号如何删除每个数字周围的引号?所以它看起来就像:[900483394…]@Richard_K_Yu^^^您想将数据从字符串类型转换为intI,我更新了函数以显示这一点。如果您有任何问题,请告诉我。@Ravindu_Perera我将如何删除每个数字周围的引号?所以它看起来就像:[900483394…]我更新了代码,向您展示了如何做。只要看看FOR循环中的FOR循环。在那里,我将每个字符串转换为整数(类型转换)。