簡體   English   中英

從 python 讀取文件並添加到具有正確值類型的列表

[英]Reading files from python and adding to a list with correct value type

我正在用 python 讀取文件,我需要將每一行添加到列表中。 問題是每一行都是一個包含字符串和整數的列表。 這是我正在閱讀的文件:文件

這是讀取文件並將其放入新列表的輸出。 輸出

如您所見,它正在將我的行存儲為字符串,但它需要像這樣:正確的輸出

代碼:

def build_sets(f):
   
    lista_valores = []

    with open(f, 'r') as f:
        for line in f:
            lista_valores += line.strip().split('\n')

    print(lista_valores)
    #pass

在你的for循環中試試這個:

lista_valores = line.strip('][').split(', ')

另外請只使用英文單詞來定義您的變量,這是變量命名約定的主要規則之一。

使用 ast.literal_eval 可以安全地評估表達式節點或包含 Python 文字或容器顯示的字符串。 因此它會將您的字符串評估為正確的列表。

import ast

def build_sets(f):
    lista_valores = []
    with open(f, "r") as f:
      a = f.read().splitlines()

    for item in a:
      lista_valores.append(ast.literal_eval(item))
    print(lista_valores)

輸出:

[[1, 'a', 'b'], [2, 'b', 'c']]

謝謝你們,我是這樣想出來的:lista_valores = []

with open(f, 'r') as f:
    for line in f:
        linha = line[0:len(line)-1].strip("[]").split(',')
        lista_valores.append(linha)


for i in range(len(lista_valores)): # convert to int
    for j in range(len(lista_valores[i])):
        if lista_valores[i][j].isdigit():
            lista_valores[i][j] = int(lista_valores[i][j])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM