Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用随机数打印字典中字符串的第一项,并打印剩余的数字?_Python_Python 3.x_Dictionary_Random - Fatal编程技术网

Python 如何使用随机数打印字典中字符串的第一项,并打印剩余的数字?

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

我正在创建一个函数来打开和读取一个文本文件,用逗号分隔。该函数将创建文本文件的字典,并打印出每个字符串中的第一项,以及一个随机数(1-10)作为键。然后,这些值将是各自字符串中的剩余数字

档案费

  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循环。在那里,我将每个字符串转换为整数(类型转换)。