一般来说,python和编码都是新手。所以我有一个已定义的列表,我试图创建一个循环来查看列表中的元素,直到它与我查找的内容相匹配并记录它在列表中的位置。
list = [1, 2, 3, 4]
x = 3
for x in list:
if x == list
print(x, list.index(x))
这是我的尝试,但它根本不起作用。
答案 0 :(得分:2)
您的搜索变量名为x
,然后您也调用循环迭代器x
,覆盖搜索查询。称之为别的东西。同时调用list
其他内容以避免屏蔽内置内容。您还可以使用enumerate
来正确处理查询多次出现的情况。另外,不要忘记if
语句末尾的冒号。
l = [1, 2, 3, 4]
x = 3
for idx,item in enumerate(l):
if item == x:
print(x, idx)
答案 1 :(得分:1)
除了缩进之外,问题在于您使用相同的变量x
进行查找和迭代。
此外,建议您不要使用list
作为变量名称,因为它用作内置函数
请考虑以下事项:
_list = [1, 2, 3, 4]
lookup = 3
for element in _list:
if lookup == element:
print(element, _list.index(lookup))
此外,如果您确定使用循环查找索引,最好使用enumerate
函数:
_list = [1, 2, 3, 4]
lookup = 3
for index, element in enumerate(_list):
if lookup == element:
print(element, index)
如果您只想查找列表中元素的索引,可以单独使用index
函数。
_list = [1, 2, 3, 4]
lookup = 3
print(lookup, _list.index(lookup))
请注意,如果查询不在列表中,则会引发ValueError
。
答案 2 :(得分:1)
试试这个。
if x in list:
print(list.index(x))
正如idjaw所提到的,尽管上面的代码适用于您的解决方案,但不要将list
之类的python关键字用于其他目的,因为它会掩盖本地范围中关键字的功能。您可以随时更改拼写或使用同义词。但是如果绝对有必要使用与关键字相同的名称,则Pythonic方法是在重命名变量时使用一个尾随下划线。这给你list_
这是完全没问题的。
答案 3 :(得分:1)
你不应该循环for x in list
。这将使你的x
值[1,2,3,4]不再是3并且要注意python中的缩进。 Python对缩进很敏感。也许这就是你要找的代码:
list = [1, 2, 3, 4]
x = 3
for i in list:
if (i == x):
print(i, list.index(i))
我忘了
中的一些内置语法列表list
是内置语法。我们不应该使用list
作为变量。只需使用'list1'或除内置语法名称之外的任何内容进行更改。这里是python https://docs.python.org/2/library/functions.html