Итак, у меня есть функция, которая берет CSV и преобразует его в словарь.
Код:
import io
opened_statcsv = io.StringIO('''"ID","HP","Attack","Defense","Speed"
6,78,84,78,100
146,90,100,90,90
643,100,120,100,90
''')
def read_stats_file(filename):
sdb={}
#opened_statcsv = open(filename, 'r')
stat_string = opened_statcsv.readlines()
for i in range(1,len(stat_string)):
splitline=stat_string[i].replace("\n",'').split(',')
sdb[splitline[0]] = splitline[1],splitline[2],splitline[3],splitline[4]
print(sdb)
read_stats_file('stats_file2.csv')
В настоящее время я могу создать словарь с одной проблемой: вокруг каждого номера есть кавычки.
Например, мой вывод сейчас: {'6': ('78', '84', '78', '100'), '643': ('100', '120', '100', ' 90' ) }
Когда это должно быть: {6: (78, 84, 78, 100), 643: (100, 120, 100, 90)}
Есть ли способ преобразовать все эти значения в целые, прежде чем создавать словарь (поскольку после этого они становятся неизменяемыми кортежами)?
Мне не разрешено импортировать CSV или карту, поэтому рекомендуется избегать использования .strip или .replace.
2 ответа
Как также предлагается в комментарии, попробуйте:
for i in range(1,len(stat_string)):
splitline=stat_string[i].replace("\n",'').split(',')
sdb[int(splitline[0])) = ( int(splitline[1]),int(splitline[2]),int(splitline[3]),int(splitline[4] )
В этом случае я предложу функцию map
for i in range(1,len(stat_string)):
splitline=map(int, stat_string[i].replace("\n",'').split(','))
sdb[splitline[0]] = splitline[1],splitline[2],splitline[3],splitline[4]
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.