我有一个由非嵌套
列表组成的变量 myvariable = [list1][list2][etc]
我只是想弄清楚如何引用变量中的不同列表。 myvariable(0)
给出列表对象不可调用的错误。显然嵌套for循环不起作用,我只是完全没有想法。
当我打印出变量时,它按预期打印所有内容,但返回只返回第一个列表。
如果这真的很明显,我很抱歉,但它让我疯狂了几天。
感谢您的帮助。
修改
(抱歉,我不知道如何让代码出现在多行上)
[u'leicestershire', u'virginia', u'Lincs', u'tonyssoccerschool@yahoo', u'.', u'co', u'.', u'uk', u'cleethorpes', u'Grimsby', u'Usually', u'the', u'M25', u'?', u'Grimsby', u'Worldwide', u'Market', u'Rasen', u'Sheffield/Grimsby', u'United', u'States', u'Grimsby', u'Grimsby', u'Grantham', u',', u'Lincolnshire', u'south', u'london/grimsby', u'Grimsby', u'Cleethorpes', u'Lincoln', u',', u'England', u'Grimsby', u'UK', u'London', u',', u'UK', u'Preston', u'Grimsby', u'Lincolnshire', u',', u'UK', u'Swadlincote', u',', u'Derbyshire', u'Hexham', u',', u'Northumberland', u',', u'UK', u'Grimsby', u'Grimsby', u',', u'UK', u'Harrogate', u'Hexham', u',', u'Northumberland', u',', u'UK', u'356', u'Holderness', u'Road', u'-', u'Hull', u'Yorkshire', u',', u'via', u'the', u'M180', u'Grimsby', u'Eltham', u',', u'London', u'United', u'Kingdom', u'Leeds', u',', u'West', u'Yorkshire', u'.', u'London', u'Ross', u'Castle', u'UK', u'(based', u'in', u'Lincolnshire)', u'Wolverhampton', u'#wwfc', u'Little', u'Mountain', u',', u'United', u'States', u'Grimsby', u'Birmingham', u',', u'UK', u'usa', u'/', u'danville', u',', u'va', u'Free', u'Bets', u'-', u'cambridge', u'UK', u'Grimsby', u'Ireland', u'Grimsby', u'Some', u'club', u'..', u'Resides', u'Milton', u'Keynes', u'Dunstable', u'Beds', u'www', u'.', u'facebook', u'.', u'com/3StyleSports', u'London-Alicante', u'Grimsby', u'North', u'Lincolnshire', u'Grimsby', u',', u'England', u'Grimsby', u'Lincolnshire', u'Cleethorpes', u',', u'UK', u'Lincoln', u',', u'UK', u'.', u'England', u'Home', u'Counties', u'/', u'North', u'London', u'Gateshead', u'UK', u'Andalucia', u'Grimsby', u',', u'England', u'Hull', u'(Booo)', u'-', u'UK', u'United', u'Kingdom']
[u'Grimsby', u'Grimsby', u'Grimsby', u'cambridge', u'Grimsby', u'Lincoln', u',', u'UK', u'.', u'www', u'.', u'facebook', u'.', u'com/3StyleSports', u'North', u'Lincolnshire', u'Grimsby', u'Hull', u'(Booo)', u'-', u'UK', u'Wolverhampton', u'#wwfc', u'United', u'Kingdom', u'Grimsby', u'Lincolnshire', u',', u'UK', u'Grimsby', u',', u'England', u'London', u',', u'UK', u'Some', u'club', u'..', u'Birmingham', u',', u'UK', u'Grimsby', u'Worldwide', u'Sheffield/Grimsby', u'Grimsby', u',', u'England', u'UK', u'?', u'cleethorpes', u'Resides', u'Milton', u'Keynes', u'UK', u'Usually', u'the', u'M25', u'Cleethorpes', u'Grimsby', u'Swadlincote', u',', u'Derbyshire', u'Cleethorpes', u',', u'UK', u'England', u'Preston', u'Dunstable', u'Beds', u'Hexham', u',', u'Northumberland', u',', u'UK', u'Lincolnshire', u'Lincs', u'leicestershire', u'Little', u'Mountain', u',', u'United', u'States', u'Lincoln', u',', u'England', u'south', u'london/grimsby', u'tonyssoccerschool@yahoo', u'.', u'co', u'.', u'uk', u'Home', u'Counties', u'/', u'North', u'London', u'UK', u'(based', u'in', u'Lincolnshire)', u'virginia', u'Hexham', u',', u'Northumberland', u',', u'UK', u'Gateshead', u'Leeds', u',', u'West', u'Yorkshire', u'.', u'Grimsby', u',', u'UK', u'London-Alicante', u'Yorkshire', u',', u'via', u'the', u'M180', u'Grimsby', u'Eltham', u',', u'London', u'United', u'Kingdom', u'Ireland', u'usa', u'/', u'danville', u',', u'va', u'London', u'United', u'States', u'Harrogate', u'Grimsby', u'Grimsby', u'Grimsby', u'Ross', u'Castle', u'Market', u'Rasen', u'UK', u'Grimsby', u'356', u'Holderness', u'Road', u'-', u'Hull', u'Andalucia', u'Free', u'Bets', u'-', u'Grantham', u',', u'Lincolnshire', u'Grimsby'][u'London', u'East', u'London', u'&', u'Essex', u'Grimsby', u'bromley', u'uk', u'lincoln', u'Grimsby', u'Grimsby', u',', u'England', u'Great', u'Great', u'Grimsby', u'Liverpool', u'New', u'Waltham', u'Derby', u'Washington', u'DC', u'USA', u'London', u'UK', u'Grimsby', u'liverpool', u'Great', u'Grimsby', u'London', u'\xdcT:', u'19', u'.', u'113285', u',', u'73', u'.', u'0078425', u'east', u'anglia', u'Cleethorpes', u'Somewhere', u'and', u'Anywhere', u'...', u'Here', u'west', u'midlands', u'Glasgow', u'London', u',', u'Crouch', u'End', u'Cottingham', u'Prague', u'Grimsby', u'Norwich', u',', u'England', u'Yorkshire', u',', u'UK', u'Cleethorpes', u'Grimsby', u'Stavanger', u'Grimsby', u'Grimsby', u'cleeeeeeethorpes', u'!', u'Dublin', u',', u'Dundee', u',', u'Humberside', u'Leicester', u'Omnipresent', u'Grimsby', u'Goodison', u'Park', u',', u'Liverpool', u'.', u'GB', u'Lisbon', u'Lincolnshire', u'Norfolk', u'London', u'Cardiff', u',', u'Wales', u'Grimsby', u'Immingham', u',', u'England', u'Grimsby', u',', u'UK', u'.', u'Grimsby', u'Grimsby', u'Near', u'Yorkshire', u'Newcastle', u'North', u'East', u',', u'England', u'Lincoln', u'Cornwall', u',', u'UK', u'Grimsby', u'london', u'town', u'baby', u'London', u'London', u'Town', u'Cleethorpes', u',', u'Lincolnshire', u'Great', u'Grimsby', u'Rawtenstall', u',', u'Rossendale', u'Cleethorpes', u'NEC', u',', u'Birmingham', u'Facebook', u'Page', u'London', u'Grimsby', u'RIght', u'here'][u'Cleethorpes', u'Leeds', u'Grimsby', u'Grimsby', u'Caistor', u',', u'Lincolnshire', u'Surrey', u'Grimsby', u',', u'UK', u'Preston', u'Hong', u'Kong', u'Grimsby', u',', u'United', u'Kigdom', u'Stallingborough', u'Lincolnshire', u',', u"it's", u'ace', u'!', u'grimsby', u'Great', u'Coates', u'Ireland', u'iPhone:', u'50', u'.', u'695671', u',', u'-1', u'.', u'291476', u'grimsby', u'uk', u'Yorba', u'Linda', u'grimsby', u'Lincoln', u',', u'UK', u'Sheffield', u',', u'UK', u'.', u'Manchester', u',', u'England', u'Grimsby', u',', u'NE', u'Lincolnshire', u',', u'UK', u'skegness', u'N/E', u'Lincolnshire', u'Brisbane', u',', u'Australia', u'leafy', u'cheshire', u'Grimsby', u',', u'UK', u'South', u'Killingholme', u'North', u'Pole', u'(well', u',', u'I', u'was', u'...', u')', u'England', u'Immingham', u'.', u'London', u'Knutsford', u'Off', u'Spurn', u'Head', u'grimsby', u'Cleethorpes', u'Yorkshire', u'Bath', u',', u'UK', u'Grimsby', u'Derby', u',', u'UK', u'The', u'dirty', u'South', u'of', u'England', u'costa', u'del', u'grimsby', u'hull\n', u'At', u'Home', u'or', u'Work', u'Grimsby', u'Cleethorpes/Nottingham', u'grimsby', u',', u'uk', u'.', u'chelsea', u'fan', u'Immingham/Louth', u'via', u'Sunderland', u'Brigg', u'/', u'Grimsby', u'/', u'High', u'Wycombe', u'Grimsby', u'Immingham', u',', u'UK', u'Grimsby', u',', u'Lincolnshire', u'Louth', u',', u'Lincolnshire', u'habrough', u'grimsby', u'Reading', u'immingham', u'Grimsby', u'Liverpool', u'Stafford', u'Grimsby', u'Cleethorpes', u'Grimsby', u'Cleethorpes', u'\xdcT:', u'53', u'.', u'549088', u',', u'-0', u'.', u'087738', u'Grimsby', u'Grimsby', u'.', u'uk', u'Grimsby', u'Lincoln', u'Trapped', u'in', u'Doncaster', u'Grimsby', u'Grimsby', u',', u'Lincolnshire', u'Moomin', u'Valley', u'UK', u'Mablethorpe', u',', u'Lincolnshire', u'China', u'all', u'round', u'the', u'globe'][u'Grimsby', u',', u'UK', u'Derbyshire', u'Leeds', u',', u'West', u'Yorkshire', u'Manchester', u'Great', u'Grimsby', u'Grimsby', u'United', u'Kingdom', u'UK', u'Laceby', u'UK', u'Grimsby', u'Aspiring', u'author/poet']
第二个代码块,是变量中包含的所有内容,我认为它是3个未嵌套的列表。
第一个代码块是return
返回的内容EDIT2
创建此
的代码 for l in locations:
Lexer.input(l)
for ll in Lexer:
locations1.append(ll.value)
编辑3
当我在这段代码上使用嵌套for循环时,它不会循环遍历每个列表,然后遍历列表中的每个单词,而是遍历第一个列表中的每个单词,然后循环每个单词中的每个单词。
老实说,我尽量尽量提供尽可能详细的信息,如果我能很好地解释问题,我很抱歉。编辑4
return locations1
(是第一个块的返回值)
self.response.out.write(locations1)
打印出第二个块的内容)
答案 0 :(得分:2)
您声称自己拥有以下代码:
myvariable = [list1][list2][etc]
这不会定义三个新的“非嵌套”或“内嵌”列表,并将它们存储在myvariable
或其他任何位置。它会做的是:
list1
中的任何值。list2
个元素。etc
元素。如果list2
碰巧是数字0或-1,而etc
碰巧是一个整数,它是list1
中任何值的有效索引,将返回该值。否则,它只会引发TypeError
或IndexError
。 (好吧,有些情况下切片对象也可以使用,但是让我们忽略它。)而且,根据名称,大概是一个列表,它会引发TypeError
。
最有可能的是,你在任何地方都没有list1
,list2
或etc
,但是这样的话:
myvariable = ['a', 'b']['c', 'd']['e', 'f']
肯定会引发TypeError
,因为你试图使用元组'c', 'd'
作为列表['a', 'b']
的索引,你可以不这样做。
你可以写的一件事是:
myvariable = ['a', 'b'], ['c', 'd'], ['e', 'f']
所做的是定义由三个列表组成的元组。这是完全有效的事情。它与三个列表的列表非常相似。例如:
>>> myvariable[0]
['a', 'b']
>>> myvariable[0][1]
'b'
你可以写的另一件事是:
myvariable = ['a', 'b']
['c', 'd']
['e', 'f']
这会将myvariable
设置为['a', 'b']
,然后定义另外两个列表,以便立即忘记它们。
因此,您可以稍后使用myvariable
来访问第一个列表的元素,因为您已将其作为第一个列表的名称,但无法访问其他两个列表的元素,因为你没有把它们存放在任何地方。
与此同时,您声称“创建此代码的代码”是:
for l in locations:
Lexer.input(l)
for ll in Lexer:
locations1.append(ll.value)
据推测,在此之上的地方有一个locations1 = []
。
如果是这样,您只有一个列表locations1
。根本没有其他列表可供访问。
查看您的第一个示例,即“内联列表”:
[u'leicestershire', u'virginia', u'Lincs', u'tonyssoccerschool@yahoo', u'.', u'co', u'.', u'uk', u'cleethorpes', u'Grimsby', u'Usually', u'the', u'M25', u'?', u'Grimsby', u'Worldwide', u'Market', u'Rasen', u'Sheffield/Grimsby', u'United', u'States', u'Grimsby', u'Grimsby', u'Grantham', u',', u'Lincolnshire', u'south', u'london/grimsby', u'Grimsby', u'Cleethorpes', u'Lincoln', u',', u'England', u'Grimsby', u'UK', u'London', u',', u'UK', u'Preston', u'Grimsby', u'Lincolnshire', u',', u'UK', u'Swadlincote', u',', u'Derbyshire', u'Hexham', u',', u'Northumberland', u',', u'UK', u'Grimsby', u'Grimsby', u',', u'UK', u'Harrogate', u'Hexham', u',', u'Northumberland', u',', u'UK', u'356', u'Holderness', u'Road', u'-', u'Hull', u'Yorkshire', u',', u'via', u'the', u'M180', u'Grimsby', u'Eltham', u',', u'London', u'United', u'Kingdom', u'Leeds', u',', u'West', u'Yorkshire', u'.', u'London', u'Ross', u'Castle', u'UK', u'(based', u'in', u'Lincolnshire)', u'Wolverhampton', u'#wwfc', u'Little', u'Mountain', u',', u'United', u'States', u'Grimsby', u'Birmingham', u',', u'UK', u'usa', u'/', u'danville', u',', u'va', u'Free', u'Bets', u'-', u'cambridge', u'UK', u'Grimsby', u'Ireland', u'Grimsby', u'Some', u'club', u'..', u'Resides', u'Milton', u'Keynes', u'Dunstable', u'Beds', u'www', u'.', u'facebook', u'.', u'com/3StyleSports', u'London-Alicante', u'Grimsby', u'North', u'Lincolnshire', u'Grimsby', u',', u'England', u'Grimsby', u'Lincolnshire', u'Cleethorpes', u',', u'UK', u'Lincoln', u',', u'UK', u'.', u'England', u'Home', u'Counties', u'/', u'North', u'London', u'Gateshead', u'UK', u'Andalucia', u'Grimsby', u',', u'England', u'Hull', u'(Booo)', u'-', u'UK', u'United', u'Kingdom']
没有[
但是一开始没有]
,没有{{1}}但最后一个(甚至不在引号内)。这只是一个大清单。
因此:
当我在这段代码上使用嵌套for循环时,它不会循环遍历每个列表,然后遍历列表中的每个单词,而是遍历第一个列表中的每个单词,然后循环每个单词中的每个单词。
这正是您对单个字符串列表的期望。 (一个字符串本身就是一个单字符串的序列。)这是非常好的证据,无论你有什么想法,你实际上拥有的只是一个列表字符串。
答案 1 :(得分:0)
尝试使用方括号myvariable[0]
。
>>> myvariable = [[1,2,3],[4,5,6],[7,8,9]]
>>> myvariable[0]
[1, 2, 3]
>>>
答案 2 :(得分:0)
由于您在单个变量中有一组列表,因此必须至少有一层嵌套。外部可迭代不必是列表本身(它可以是元组或其他可迭代的),但它仍然是列表的容器。你试图用下标来访问它(括号实际上对下标没有效果,但基于你使用整数的事实我假设你去下标),所以你可能实际上有一个列表列表,即使内部列表本身不是嵌套的。
>>> myvariable=[['a'],['list', 'of'],['Liszts']]
>>> print myvariable[1]
['list', 'of']
如果你的iterable实际上是一个生成器,你实际上无法通过下标来访问它们,并且必须通过调用next()
一次访问它们,或者将整个事物转换为列表列表。< / p>