如何在Python中遍历一个字符串数组?

2,116 阅读4分钟

在这篇文章中,我们将看到字符串列表迭代的不同方法。我们将讨论的方法如下。

  1. 使用带有范围函数的for循环。
  2. 使用while循环。
  3. 使用comprehension方法。
  4. 使用enumerate方法。
  5. 使用枚举法并格式化输出。

那么,让我们来讨论每个方法和它们的程序。

方法1:使用带范围函数的for循环

所以,这个方法将使用for循环来迭代字符串数组,这非常简单。

# python for_loop_with_range_function.py

str_list = ["New York","Los Angeles","Chicago","Houston","Phoenix",
            "Philadelphia"]

for x in range(len(str_list)):
    print(str_list[x])

输出: python for_loop_with_range_function.py

New York
Los Angeles
Chicago
Houston
Phoenix
Philadelphia

第3行:我们创建了一个字符串元素的列表。

6到7行:我们使用range函数和len()方法计算出的范围值。然后我们简单地从列表中迭代每个元素,并在屏幕上打印出上图中的输出。

方法2:使用while循环
我们可以使用的另一种方法是通过while循环来迭代字符串列表。但这一般不是程序员使用的方法,因为没有必要使用额外的变量。

# python using_while_loop.py

'''
 Iterate the string list using the while loop
'''
i = 0
str_list = ["New York","Los Angeles","Chicago","Houston","Phoenix",
           "Philadelphia"]
sizeofList = len(str_list)
while i < sizeofList:
    print(str_list[i])
    i += 1

输出python using_while_loop.py

New York
Los Angeles
Chicago
Houston
Phoenix
Philadelphia

第6行:我们初始化一个变量,在while循环中进行比较。

7行:我们创建了一个字符串元素的列表。

9行:我们找到字符串列表的长度。

10至12行:我们正在检查初始化变量(i)是否小于字符串列表的长度,然后它将打印字符串列表的元素,否则它将停止循环。

方法3:使用理解法

理解法是最流行的方法,大多数程序员都愿意使用它,因为它看起来更像pythonic,而且非常干净。下面给出了使用理解法的方法。

# python list_comprehension.py

'''
 Iterate the string list using the list comprehension method
'''

str_list=["New York","Los Angeles","Chicago","Houston","Phoenix",
         "Philadelphia"]
[print(i) for i in str_list]

输出: python list_comprehensive.py

New York
Los Angeles
Chicago
Houston
Phoenix
Philadelphia

7行:我们创建了一个字符串元素的列表。

9行:这一行里面,我们正在运行一个for循环,并伴随着单行的print语句。这就是为什么我们称它为列表理解方法。

方法4:使用枚举法

还有一种方法,我们可以用来打印元素和它们的索引值。在这个方法中,我们用另一个额外的变量IDX(我们可以保留这个变量的任何名字)来迭代字符串列表。这个变量将打印该特定元素的索引值。但是要注意,第一个变量将打印元素的索引值,第二个变量将打印元素。

# python enumerate.py

'''
 Iterate the string list using enumerate
'''

str_list = ["New York","Los Angeles","Chicago","Houston","Phoenix",
            "Philadelphia"]

# this will print elements along with their index value
for idx, word in enumerate(str_list):
    print(idx, word)

输出: python enumerate.py

0 New York
1 Los Angeles
2 Chicago
3 Houston
4 Phoenix
5 Philadelphia

第7行:我们创建了一个字符串元素的列表。

11至12行:我们使用enumerate()函数,在该函数中,我们传递了字符串列表。然后我们使用两个变量,idx,和word,它们将分别打印索引值和元素。我们可以看到,在上面的输出中,有一些数字值与元素一起出现。这个数字值是元素在列表数组中的索引位置。上面的数字输出从0开始,因为索引值在列表中从0开始。

方法5:使用enumerate并格式化输出

我们也可以在打印我们的元素时格式化输出。因此,在下面这个程序中,我们将看到如何格式化输出。

# python format_string_list.py

'''
 Iterate the string list and format it
'''

str_list = ["New York","Los Angeles","Chicago","Houston","Phoenix",
            "Philadelphia"]


for i, word in enumerate(str_list):
    print ("string[{}] = {}".format(i, word))

输出: python format_string_list.py

string[0] = New York
string[1] = Los Angeles
string[2] = Chicago
string[3] = Houston
string[4] = Phoenix
string[5] = Philadelphia

第7行:我们创建了一个字符串元素的列表。

11至12行:在这一行,我们使用了在上面的例子中已经给出的枚举函数的细节。但在这里,我们也使用了 format 函数。format函数接受变量,并将这些变量以同样的顺序传递给大括号{},如上面程序所示。第一个变量是一个索引(i),第二个变量是一个元素值(word),所以第一个大括号将得到一个索引值,第二个大括号将得到一个元素值。

总结

在这篇文章中,我们已经看到了所有不同的方法来迭代一个字符串列表。我们还看到了一些更高级的概念,比如列表理解法,这是最流行的pythonic方式。我们也看到了一些初级的迭代方法,如 while 循环。迭代的最好方法是列表理解法,因为我们不会因为较少的变量而产生过多的代码复杂性。但有时,人们会对列表理解法感到困惑。所以,使用任何方法都是由用户决定的,没有任何限制。只有程序员给出的建议,使用较少的变量和迭代,使代码快速。