帮助!我不明白这一点。当我尝试使用len()测量python 2.7中列表的长度时,得到了错误的结果。
以下是代码:
case:3
这是输出:
if len(fields) > 0:
fields_split = []
for i in fields:
i = i.split(',')
fields_split.append(i)
reindz = len(fields_split)
print fields
print reindz
print fields_split
因此即使拆分调用有效,包含一个和两个元素的列表之间的长度也没有差异......
答案 0 :(得分:2)
每个拆分字符串,您将结果列表追加到fields_split
。因此fields_split
将始终具有与fields
完全相同的元素数,每个元素都是一个单独的列表对象。这些单独的列表对象将分别包含一个或多个字符串。
如果您希望将所有拆分字符串添加到fields_split
而不添加中间列表,请使用list.extend()
而不是list.append()
:
fields_split.extend(i)
现在,每个拆分结果都会直接添加为fields_split
中的单独条目,且长度将等于或大于fields
的长度。
答案 1 :(得分:1)
根据您的输出
[u'name,description']
1
[[u'name', u'description']]
[u'name,description']
1
...
len()
函数返回正确的输出。对于上面的第二个示例,[[u'name', u'description']]
的长度为1,因为它是一个2D列表。第一个"维度"是一个清单。这个维度中只有一个。所以它的长度是1.第二个"尺寸的长度" (那个内部列表)是2,因为它有两个项目。
答案 2 :(得分:0)
我想你想要这个..
fields=u'name,description'
if len(fields) > 0:
fields_split = fields.split(',')
reindz = len(fields_split)
print fields
print reindz
print fields_split
结果:
name,description
2
[u'name', u'description']