在我们对接收到的字符串或列表进行处理时,一般需要用到遍历和字符串处理等方法,遍历考验的是程序算法逻辑,切割考验的是相关函数的调用。
遍历列表的一般有三种方法
直接遍历
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包解决