如何在列表的列表中多次索引某个字符?
How do I index a certain character multiple times in a list of a list?
我正在从 csv 文件中读取数字,并尝试在文件第一列中每次出现数字“1”时进行计数。
f = open(fileName, 'r')
reader = csv.reader(f)
votes = []
count = 0
for row in reader:
votes.append(row)
for i in votes:
if votes[0:i] == '1':
count += 1
print(count)
这是我收到的错误:
TypeError: slice indices must be integers or None or have an __index__ method
您不需要对切片执行此操作。如果一行中的第一个字符是 1
,那么 line[0] == 1
将为 True。
您可以利用以下事实对布尔值进行简单求和:python 将 True
和 False
视为 1
,而 0
允许您求和 sum([True, True, False, 0, 1])
之类的东西,其计算结果为 3
给定 path
处的文件,例如:
123
234
143
454
16786
111
你可以简单地做:
with open(path) as f:
total = sum(l[0] == '1' for l in f)
print(total)
# prints: 4
我正在从 csv 文件中读取数字,并尝试在文件第一列中每次出现数字“1”时进行计数。
f = open(fileName, 'r')
reader = csv.reader(f)
votes = []
count = 0
for row in reader:
votes.append(row)
for i in votes:
if votes[0:i] == '1':
count += 1
print(count)
这是我收到的错误:
TypeError: slice indices must be integers or None or have an __index__ method
您不需要对切片执行此操作。如果一行中的第一个字符是 1
,那么 line[0] == 1
将为 True。
您可以利用以下事实对布尔值进行简单求和:python 将 True
和 False
视为 1
,而 0
允许您求和 sum([True, True, False, 0, 1])
之类的东西,其计算结果为 3
给定 path
处的文件,例如:
123
234
143
454
16786
111
你可以简单地做:
with open(path) as f:
total = sum(l[0] == '1' for l in f)
print(total)
# prints: 4