1.说明怎么判断一个东西是可以迭代的
迭代器可以参考数组是可以迭代的,利用for循环判断是否是迭代,如果能够通过for 元素 in 迭代元素
进行操作那就是说明他是能够迭代的
#字符串也是可以通过for循环进行迭代遍历
for iter_element in "string":
print(iter_element)
如果直接对字符串进行迭代,那么迭代的元素就是每一个字符,但是如果相对每一个字符串进行迭代,那么只需要将字符串化为数组加[]或者list
list的作用的是元组,对于字符串就是将每一个元素放入数组中,每一个元素就是每一个字符,而如果参数是数组,那么转换之后自然也就是数组
#字符串进行list操作,然后对list之后的结果进行遍历
str="string"
list_str=list(str)#这样也会把str直接变成['s', 't', 'r', 'i', 'n', 'g']
print("字符串进行list操作,然后对list之后的结果进行遍历")
print(list_str)
for str_element in list_str:
print(str_element)
print()
#对字符串进行[]操作符,然后将其结果进行输出
print("对字符串进行[]操作符,然后将其结果进行输出")
list_str=[str]
for str_element in list_str:
print(str_element)
print()
#对数组进行list操作,其实是没有效果的,因为list操作的是元组采用区别
int_list=[1,2,3,4]
int_list_list=list(int_list)
print("#对数组进行list操作,其实是没有效果的,因为list操作的是元组采用区别")
print(int_list_list)
for int_element in int_list_list:
print(int_element)
#数组通过循环迭代遍历
int_list=[1,2,3,4]
for int_element in int_list:
print(int_element)
2. 对map的使用
- map的操作参数:map(function, iterable)
- function可以使用lamda表达式
- iterable主要是接收[]数据格式,可以通过list或者[]转换,不过在这里不适合用list转换,容易迭代字符进数组
使用示例:
list1 = list(map(lambda x:x.strip().split(), imgs_info))
print(list1)
示例
#使用list数组类型进行map的使用
imgs_info=[1,2,4,5,9]
list1 = list(map(lambda x:x*x, imgs_info))
print(list1)
#使用字符串进行map的使用,需要先用[]进行封装
imgs_info=['dataset\\碰伤\\碰伤20180905094835对照样本.jpg\t5\n']
imgs_info = list(map(lambda x:x.strip().split('\t'), imgs_info))
print(imgs_info)
注意:如果直接将字符串当做迭代数据的话,就会把字符放进数组,就不符合实际情况,因为这样就会直接输出[['s'], ['t'], ['r'], [], [], ['1']]
imgs_info='str 1'
imgs_info = list(map(lambda x:x.strip().split(), imgs_info))
print(imgs_info)