如何从以下代码中获取整数,以便可以将其与其他整数进行比较?
unseenWords = ["Cat", "Geography", "Mouse", "Apocalypse", "Hierarchy", "Opaque", "Holocaust"]
for i in unseenWords:
print(unseenWords)
我尝试使用len替换以下内容:
unseenWords.__len__()
但是那是我在这个标题中得到erorr的时候。我已经很习惯Java代码了,所以我期望我总是一个整数,但是在Python中似乎不是这样,因为当我尝试纯粹打印出“ i”时,它会返回实际的单词? / p>
因此,当我打印看不见的单词时,我将其格式设置为:
['Cat', 'Geography', 'Mouse', 'Apocalypse', 'Hierarchy', 'Opaque', 'Holocaust']
['Cat', 'Geography', 'Mouse', 'Apocalypse', 'Hierarchy', 'Opaque', 'Holocaust']
['Cat', 'Geography', 'Mouse', 'Apocalypse', 'Hierarchy', 'Opaque', 'Holocaust']
['Cat', 'Geography', 'Mouse', 'Apocalypse', 'Hierarchy', 'Opaque', 'Holocaust']
['Cat', 'Geography', 'Mouse', 'Apocalypse', 'Hierarchy', 'Opaque', 'Holocaust']
['Cat', 'Geography', 'Mouse', 'Apocalypse', 'Hierarchy', 'Opaque', 'Holocaust']
['Cat', 'Geography', 'Mouse', 'Apocalypse', 'Hierarchy', 'Opaque', 'Holocaust']
打印出索引后,我将其格式化为:
print(i)
Cat
Geography
Mouse
Apocalypse
Hierarchy
Opaque
Holocaust
尽管我期望它更像是: 1个 2 3 4 5 6
但是如何获取当前索引号?
答案 0 :(得分:1)
我非常习惯Java代码,所以我希望我始终是整数,但在Python中似乎并非如此,因为当我尝试纯粹尝试打印'i时,它会返回实际单词'?
好吧,python确实不是java,那么为什么还要期望它以相同的方式工作呢? The behaviour of python's for
loop is documented,您应该阅读该文档,对吗?
我尝试使用len代替以下内容:
unseenWords.__len__()
稍加OT:您不应直接调用“魔术方法”(它们仅是对运算符的支持-和类似运算符的功能-重载)。正确的方法是len(unseenWords)
。
但是那是我在这个标题中得到erorr
您不必费心张贴相关代码(您应该拥有),但是显然您做了类似的事情:
for i in `unseenWords.__len__()`:
# ....
哪个当然会引发此错误-对整数进行迭代的意义是什么?这里再次doing at least the official tutorial would have solved your problem(注意,这是解释for
循环之后的下一部分...)。
尽管我希望它更像是:1 2 3 4 5 6
与包括Java FWIW在内的绝大多数语言一样,python使用基于零的索引-但是range()
也可以采用'start'参数,因此这并不是真正的问题。
答案 1 :(得分:0)
您正在执行for-each
循环,而不是按索引进行迭代。
for i in unseenWords: # for every item in the list unseenWord
print(unseenWords) # you print the actual list
这与Java中的for (String i : unseenWords)
相同(如注释中@ChatterOne所述)。
如果要打印每个单词,则需要执行以下操作:
for i in unseenWords:
print(i)
如果要打印每个单词的索引,则有几种不同的方法可以实现,其中一种方法如下:
for i in range(len(unseenWords)): # iterate on the range of the size
print(i)
答案 2 :(得分:0)
for index, data in enumerate(unseenWords):
print("index: "+str(index)+ " data:"+data )
我认为这可以解决您的问题。
答案 3 :(得分:0)
对代码进行一些修改,将为您提供所需的输出。请将以下代码与您的代码进行比较
unseenWords = ["Cat", "Geography", "Mouse", "Apocalypse", "Hierarchy", "Opaque", "Holocaust"]
for i in range(0,len(unseenWords),1):
print(i)
会给您:
0 1 2 3 4 5 6
就像在Java中一样
for (int i=0; i<arrayLength; i++)
System.out.println(i);
因为索引从零
开始