【问题标题】:Is there any way to get rid of " ' " in a list in python?有什么办法可以摆脱 python 列表中的“'”?
【发布时间】:2021-08-18 09:32:52
【问题描述】:

我想读取一个列中包含此类数据的 csv 文件:

4,90,1,228 
31,828 
3,110,1,540 
3,110,1,540 
111,350 
3,308,1,780     
3,369,1,2409 
0,1350 
7,132 
11,210 
4,2240,8,3720

我尝试将这些数据分配给名为“jobs_data1”的列表对象,同时以如下所示的所需方式调整它们。

这是print(jobs_data1)的期望输出:

[[(4, 90), (1, 228)], [(3, 1828)], [(3, 110), (1, 540)], [(3, 110), (1, 540)], [(11, 1350)], [(3, 308), (1, 780)], [(3, 369), (1, 2409)], [(0, 1350)], [(7, 132)], [(11, 210)], [(4, 2240), (8, 3720)]]

这是代码:

    with open("jobs.csv") as csv_file:
            csv_reader = csv.reader(csv_file, delimiter=",")
            jobs_data1 = [[tuple(row[i : i + 2]) for i in range(0, len(row), 2)] for row in csv_reader]
           
            print(jobs_data1)
            print(type(jobs_data1))
   csv_file.close()

这是输出:

    [[('4', '90'), ('1', '228')], [('3', '1828')], [('3', '110'), ('1', '540')], [('3', '110'), ('1', '540')], [('11', '1350')], [('3', '308'), ('1', '780')], [('3', '369'), ('1', '2409')], [('0', '1350')], [('7', '132')], [('11', '210')], [('4', '2240'), ('8', '3720')]]

<class 'list'>

但是,我想在“jobs_data1”变量的输出中去掉“'”,同时保持变量的类型为列表格式。 有没有其他读取文件的方法来达到所需的输出?

【问题讨论】:

  • ' 表示它们是字符串,您可以将这些字符串解析为不带引号的整数。

标签: python csv


【解决方案1】:

您要做的是将元组中所有元素的类型从 string 更改为 int。同样,您可以使用地图功能。

with open("jobs.csv") as csv_file:
    csv_reader = csv.reader(csv_file, delimiter=",")
    jobs_data1 = [[tuple(map(int, row[i : i + 2])) for i in range(0, len(row), 2)] for row in csv_reader]
    
    print(jobs_data1)

另外,由于您使用的是with open (),因此不需要使用csv_file.close()

【讨论】:

    【解决方案2】:

    删除 ' 意味着将字符串转换为整数。您可以使用 int() 函数轻松实现此目的:

    with open("jobs.csv") as csv_file:
            csv_reader = csv.reader(csv_file, delimiter=",")
            jobs_data1 = [[tuple(int(row[i : i + 2])) for i in range(0, len(row), 2)] for row in csv_reader]
           
            print(jobs_data1)
            print(type(jobs_data1))
    csv_file.close()
    

    【讨论】:

      猜你喜欢
      • 2020-02-05
      • 2011-09-02
      • 2010-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-15
      • 1970-01-01
      相关资源
      最近更新 更多