Tôi quan tâm đến việc không phải viết bản đồ hàm int vào bộ chuỗi của chuỗi mà tôi hiện có. Xem phần cuối cùng của ví dụ của tôi:python csv reader - chuyển đổi chuỗi thành int trên dòng khi lặp lại
import os
import csv
filepath = os.path.normpath("c:/temp/test.csv")
individualFile = open(filepath,'rb')
dialect = csv.Sniffer().sniff(individualFile.read(1000))
individualFile.seek(0)
reader = csv.reader(individualFile,dialect)
names = reader.next()
print names
def buildTree(arityList):
if arityList == []:
return 0
else:
tree = {}
for i in xrange(arityList[0][0],arityList[0][1]+1):
tree[i] = buildTree(arityList[1:])
return tree
census = buildTree([(1,12),(1,6),(1,4),(1,2),(0,85),(0,14)])
for m, f, s, g, a, c, t in reader:
try:
m,f,s,g,a,c,t = map(int,(m,f,s,g,a,c,t))
census[m][f][s][g][a][c] += t
except:
print "error"
print m, f, s, g, a, c, t
break
một cái gì đó như thế này Những gì tôi muốn làm là:
for m, f, s, g, a, c, t in map(int,reader):
try:
census[m][f][s][g][a][c] += t
except:
print "error"
print m, f, s, g, a, c, t
break
tôi cố gắng này và tôi nhận được lỗi sau:
TypeError: int() argument must be a string or a number, not 'list'
tôi đang gặp sự cố khi hiểu thông báo lỗi này. Tôi nghĩ rằng người đọc là một đối tượng có thể lặp lại - không phải là một danh sách. Nó trả về một danh sách cho mỗi lần lặp, nhưng chính nó không phải là một danh sách, đúng không? Tôi đoán đó là một câu hỏi phụ. Những gì tôi thực sự muốn biết là nếu có một cách để làm những gì tôi đang cố gắng làm. Xin lỗi vì mã không thực sự liên quan, nhưng tôi nghĩ tôi sẽ bao gồm toàn bộ ví dụ của mình. Cảm thấy tự do để xé nó thành bit! :) Tôi tự hỏi nếu nó có thể là tốt hơn để chỉ có một dict mà chìa khóa là một tuple thay vì công cụ này từ điển lồng nhau, nhưng ngay cả như vậy, tôi vẫn quan tâm đến việc tìm ra câu hỏi của tôi.
điều này thật tuyệt vời. tôi chỉ đọc về máy phát điện và điều này giúp tôi hiểu chúng tốt hơn! xin lỗi để hành động như một tổng noob/fanboy, nhưng tôi chỉ mới bắt đầu nhận được vào python, và nó là như vậy damn tuyệt vời. – oob
@oob. Đừng đổ mồ hôi. Tôi có thể sử dụng tất cả những người hâm mộ mà tôi có thể nhận được. Oh chờ đợi .... bạn đã nói về python. Yeah, pythons cũng khá tuyệt. – aaronasterling