Java转Python转换

-7 投票
4 回答
736 浏览
提问于 2025-04-17 10:29

我想知道怎么把这个用Python写得更好:for (int i = 0; i < itemsCount; i++)

有什么想法吗?

提前谢谢你!

4 个回答

1

这里是相关文档的部分内容(顺便提一下,这是我在谷歌搜索“python 循环”时找到的第一个结果)。

在 Python 2.x 中

for i in xrange(itemsCount):
  # rtfm

在 Python 3 中

for i in range(itemsCount):
  # rtfm

注意: 在 Python 2.x 中,普通的 range 也可以使用,但效率不高,因为它会在内存中生成一个完整的列表,这在构建循环结构时其实是没必要的。

注意2: 如果你只打算用 i 来访问某个容器里的元素,直接遍历这个容器会更符合 Python 的风格,比如可以写成 for item in my_list:。如果你确实需要索引,通常的做法是用 for i,v in enumerate(my_list): 来遍历。

1

一个Python中相应的循环:

for i in range(0,itemsCount):
3

如果你在遍历某个容器里的项目,就直接遍历这个容器,不要用索引,除非你真的需要。

正确的做法:

slots = [1, 2, 3, 7]
for slot in slots:
    print cards[slot]

错误的做法(或者说是“在Python中写C/C++/Java/C#/其他语言的风格”):

slots = [1, 2, 3, 7]
for i in range(len(slots)):
    print cards[slots[i]]

如果你需要索引来做其他事情(比如你要修改这个容器),那么Python的推荐做法是用 enumerate()

for i, slot in enumerate(slots):
    print cards[slot]
    slots[i] += 1

撰写回答