【Python基础】遍历列表和字符串处理

225 阅读2分钟

在我们对接收到的字符串或列表进行处理时,一般需要用到遍历和字符串处理等方法,遍历考验的是程序算法逻辑,切割考验的是相关函数的调用。

遍历列表的一般有三种方法

直接遍历

list1=[1,24,34,44,533,5,219]
for item in list1:
    print(item)

按索引遍历   一般用到enumerate这个函数

list1=[1,24,34,44,533,5,219]
for i in enumerate(list1):
    print(i)

通过下标遍历 一般使用range函数

list1=[1,24,34,44,533,5,219]
for i in range(len(list1)):
    print(list1[i])

字符串处理

split() 方法按标识切割,replace()方法替换字符

# 在每次出现逗号时拆分字符串
my_str = 'one,two,three,four'
my_list = my_str.split(',') print(my_list)
# ['one', 'two', 'three', 'four'] 

# 在每个空格或逗号上拆分字符串 
my_str_2 = 'one two,three four five' 
my_list_2 = my_str_2.replace(',', ' ').split(' ') print(my_list_2) 
#  ['one', 'two', 'three', 'four', 'five']

如果在字符串中找不到分隔符,则返回仅包含 1 个元素的列表。

my_str = 'one' my_list = my_str.split(',') 
print(my_list)
#  ['one'] 

strip()方法删除前导和后导空格

my_str = 'one , two , three ,four' 
my_list = [item.strip() for item in my_str.split(',')] 
print(my_list) 
#  ['one', 'two', 'three', 'four']

如果我们的字符串以逗号开头或结尾,split()方法将在列表中获得空字符串元素

my_str = ',one,two,three,four,' 
my_list = my_str.split(',') 
print(my_list) 
#  ['', 'one', 'two', 'three', 'four', '']

这时候我们需要filter()从列表中删除任何空字符串

my_str = ',one,two,three,four,' 
my_list = list(filter(None, my_str.split(','))) 
print(my_list) 
#  ['one', 'two', 'three', 'four']

如果为函数参数传递 None ,则可迭代的所有值为假的元素都将被删除。 所有不真实的值都被认为是假的。 Python 中的假值是:

  • 定义为虚假的常量:None 和 False。
  • 任何数字类型的 0(零)
  • 空序列和集合:""(空字符串)、()(空元组)、[](空列表)、{}(空字典)、set()(空集)、range(0)(空范围)。

注意 filter() 函数返回一个过滤器对象,所以我们必须使用 list() 类将过滤器对象转换为列表。 匹配不确定的多个字符,例如\\,\,\\\\ 可通过正则表达式 + re包解决