Python_列表初识及操作

列表

初识

  列表属于容器性数据类型。

li = [123, '狗', True, [1, 2, 3], {'name': 'Lon'}, (1, 2, 3)]

  其中包含有int型,例如123;字符串,例如'狗';bool值,例如True;列表,例如[1,2,3];字典,例如{'name':'Lon'};元组,例如(1,2,3)。

  在循环一个列表时,最好不要改变列表的大小,会影响你的最终结果。如下:

  li = [111, 222, 333, 444, 555,],索引为奇数的所有元素全部删除。

  方法一:

l1 = [111, 222, 333, 444, 555, ]
del l1[1::2]
print(l1)

  方法二(错误展示):

l1 = [111, 222, 333, 444, 555, ]
for index in range(len(l1)):
    print('删除之前的index:%s' % index)
    print('删除之前的l1:%s' % l1)
    if index % 2 == 1:
        del l1[index]
    print('删除之后的index:%s' % index)
    print('删除之后的l1:%s' % l1)
print(l1)

  方法三(倒着删):

l1 = [111, 222, 333, 444, 555, ]
for index in range(len(l1) - 1, -1, -1):
    if index % 2 == 1:
        del l1[index]
print(l1)

  方法四(自己做的):

l1 = [111, 222, 333, 444, 555, 666, 777, 888, 999, ]
i = len(l1)
count = 1
s = int(len(l1)/2)
for j in range(s):
    del l1[count]
    count += 1
print(l1)

索引取值

l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
print(l1[0])

结果:

 

l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
print(l1[1],type(l1[1]))

结果:

 

切片取值

起始切

l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
print(l1[:3])

结果:

 

 结尾切

l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
print(l1[2:])

结果:

 

 步长切

l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
print(l1[::2])

结果:

  

操作

  增加一共有三种方式,分别为__.append()、__.insert()、__.extend()。

append('A')

  增加,在列表最后边添加需要添加的内容A,返回值为None。

l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
print(l1.append('女神'))

  l1.append('女神')  这条语句只是一个动作,所以无法输出结果,当打印这条代码是,输出的结果为None,结果如下图:

 

追加字符串
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
l1.append('女神')
print(l1)

结果:

追加列表
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
l1.append([1, 2, 1111])
print(l1)

 结果:

   给一个列表中添加循环添加数据。如下:

name_list = ['wusir', 'alex', 'laonanhai', 'ritian', 'taibai']
while True:
    user_name = input('请输入新员工的名字:q或Q退出').strip()
    if user_name.upper() == 'Q':
        break
    name_list.append(user_name)
    print('您已经成功添加了%s' % user_name)
print(name_list)

结果:

 

.insert(Num,A)

  插入,在索引为Num的位置插入A。

name_list = ['wusir', 'alex', 'laonanhai', 'ritian', 'taibai']
name_list.insert(1, '哪吒')
print(name_list)

结果:

  

extend('ABC')

   迭代追加,将'ABC'拆分成本最小的单元添加在列表后边。

name_list = ['wusir', 'alex', 'laonanhai', 'ritian', 'taibai']
name_list.extend('abc')
print(name_list)

结果:

 

  当添加的内容为列表时,列表内的字符串不进行拆分,只是拆分列表成列表的最小单元。

name_list = ['wusir', 'alex', 'laonanhai', 'ritian', 'taibai']
name_list.extend([1, 2, 3, 4, 'abc'])
print(name_list)

 结果:

.pop(Num)

  按照索引去删除,有返回值。删除索引Num对应的元素。

name_list = ['wusir', 'alex', 'laonanhai', 'ritian', 'taibai']
ret = name_list.pop(0)
print(ret) print(name_list)

结果:

 

.remove('A')

  按照元素去删除,删除元素A。只删除第一次出现的值,即当有多个值时,只删除第一次出现的。

l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
l1.remove('alex')
print(l1)

结果:

 

.clear()

  清空列表。

l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
l1.clear()
print(l1)

结果:

 

del

  在内存级别删除列表。

全删
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
del l1
print(l1)

结果:

 

按照索引删除
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
del l1[2]
print(l1)

结果:

  

切片删除
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
del l1[:-1]
print(l1)

结果:

 

加步长删除
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
del l1[::2]
print(l1)

结果:

 

按照索引去改

正索引
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
l1[0] = '肖锋'
print(l1)

结果:

 

 负索引
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
l1[-1] = '男神'
print(l1)

结果:

 

按照切片去改

  先将切片的区域内的容全部删除,然后迭代着添加内容。

字符串
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
l1[:3] = '范德萨发给ghfkhgh;'
print(l1)

 结果:

 列表
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
l1[:3] = [1111, 2222, 3333, 4444]
print(l1)

 结果:

切片查

l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
print(l1[:4])

结果:

for循环

l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
for i in l1:
    print(i)

结果:

 

其他操作方法

len(A)

  计算A的元素个数。

l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
cou = len(l1)
print(cou)

结果:

 

.count('A')

  统计A元素的个数。

l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
print(l1.count('taibai'))

结果:

 

.index()

  通过元素找索引,可以设置起始位置和结束位置。

源码
def index(self, value, start=None, stop=None): # real signature unknown; restored from __doc__
    """
    L.index(value, [start, [stop]]) -> integer -- return first index of value.
    Raises ValueError if the value is not present.
    """
    return 0
l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
print(l1.index('alex', 2))

结果:

.sort()

从小到大,正序排序

l2 = [1, 3, 5, 9, 7, 6, 2, 4]
l2.sort()
print(l2)

结果:

从大到小,倒序排序

l2 = [1, 3, 5, 9, 7, 6, 2, 4]
l2.sort(reverse=True)
print(l2)

 结果:

.reverse()

  翻转

l2 = [1, 3, 5, 9, 7, 6, 2, 4]
l2.reverse()
print(l2)

结果:

 

原文地址:https://www.cnblogs.com/ZN-225/p/9587960.html