列表(list)是Python以及其他语言中最常用到的数据结构之一。Python使用使用中括号 [ ] 来表示列表。

[1,2,'c','dfas',True]
索引和切片。
li = [1,2,3,'af','re',4,'45']
print(li[0])
print(li[3])
print(li[-1])

切片输出的结果也是列表,形成的新列表中的元素的数据类型不变.

li = [1,2,3,'af','re',4,'45']
切片: print(li[
0:3]) print(li[2:5]) print(li[0:5:2]) print(li[-2::-2]) print(li[5:0:-2])

输出:

[1, 2, 3]
[3, 'af', 're']
[1, 3, 're']
[4, 'af', 2]
[4, 'af', 2]

列表的增删改查:(对列表的操作,会直接改变原列表)

 

增:

li = ['taibai','alex','wusir']
# 1增加 append 在最后增加一个元素
print(li.append('yuanhao'))
li.append([1,2,3,'www'])
print(li)

输出:

None
['taibai', 'alex', 'wusir', 'yuanhao', [1, 2, 3, 'www']]

应用:

li = []
while
True: username = input('请输入员工姓名:') if username.lower() == 'q':break li.append(username) print(li)

 

insert #按照索引去增加

li = ['taibai','alex','wusir']
li.insert(1,'日天')
print(li)

输出:
['taibai', '日天', 'alex', 'wusir']

#extend 迭代的添加

li = ['taibai','alex','wusir']
li.extend('q')
print(li)
li.extend('asdt')
print(li)
li.extend([1,2,3,'www'])
print(li)
li.extend('abc')
print(li)
li.extend('a,b,c')
print(li)

输出:
['taibai', 'alex', 'wusir', 'q']
['taibai', 'alex', 'wusir', 'q', 'a', 's', 'd', 't']
['taibai', 'alex', 'wusir', 'q', 'a', 's', 'd', 't', 1, 2, 3, 'www']
['taibai', 'alex', 'wusir', 'q', 'a', 's', 'd', 't', 1, 2, 3, 'www', 'a', 'b', 'c']
['taibai', 'alex', 'wusir', 'q', 'a', 's', 'd', 't', 1, 2, 3, 'www', 'a', 'b', 'c', 'a', ',', 'b', ',', 'c']

 

删:

#删除 pop 按照索引去删除,有返回值

li = ['taibai','alex','wusir','egon','hulu','jingnvshen']
#删除 pop 按照索引去删除,有返回值
name = li.pop(1)
print(name)
print(li)

输出:
alex
['taibai', 'wusir', 'egon', 'hulu', 'jingnvshen']

# remove 按照元素去删除

li = ['taibai','alex','wusir']
# remove 按照元素去删除
li.remove('alex')
print(li)

输出:
['taibai', 'wusir']

#clear 清空列表

li = ['taibai','alex','wusir']
#clear 清空列表
li.clear()
print(li)

输出:
[]

del  按照位置去删除,也可切片删除没有返回值

li = ['taibai','alex','wusir','egon','hulu','jingnvshen']
del li[2:4]
print(li)
del li[0:4:2]
print(li)

输出:
['taibai', 'alex', 'hulu', 'jingnvshen']
['alex', 'jingnvshen']

 

改:

#改

如果是索引:先删除索引位置元素,后将新元素添加到索引位置。

如果是切片,先删除切片位置元素,迭代着添加新元素到切片位置。

li = ['taibai','alex','wusir','egon','hulu','jingnvshen']
#改 先切片删除,后迭代着添加
li[0] = '男神'
print(li)
li[0:3] = '都是男人'
print(li)
li[:] = '都是男人'
print(li)

输出:
['男神', 'alex', 'wusir', 'egon', 'hulu', 'jingnvshen']
['', '', '', '', 'egon', 'hulu', 'jingnvshen']
['', '', '', '']

 

li = ['taibai','alex','wusir','egon','hulu','jingnvshen']
li[0:2] = ['asd']
print(li)
li[0:2] = ['asd','fdsa',123]
print(li)

输出:
['asd', 'wusir', 'egon', 'hulu', 'jingnvshen']
['asd', 'fdsa', 123, 'egon', 'hulu', 'jingnvshen']

 

查:

切片去查,或者循环去查

切片去查
li = ['taibai','alex','wusir','egon','hulu','jingnvshen'] # print(li[1:4])
循环去查 # li = ['taibai','taibai','wusir','egon','taibai','jingnvshen']
# for i in li:
#     print(i)

 列表的嵌套:

li = [1,2,5,'taibai','yuanhao',[1,'alex',3,],True]

# print(li[3])
# print(li[3][3])
# s = li[4].capitalize()  #li[4]是字符串,字符串不可改变,需要定义一个新的字符串。 # li[4] = s #li[4] = li[4].capitalize() # li[4] = 'Yuanhao' # print(li)
# s2 = li[4].replace('hao','日天') # li[4] = s2 # li[4] = li[4][0:4] + 'ritian' # print(li) # l2 = li[5] # li[5][0] = '文杰' # print(li) li[5][1] = li[5][1].upper() #定义到的元素是字符串,将改变的结果重新赋值给字符串 print(li)

列表的其他方法:

li = [2,3,1,5,6,8,9,7,4,10]
#sort 正序排序
li.sort()
print(li)

li = [2,3,1,5,6,8,9,7,4,10]
# reverse 反转
li.reverse()
print(li)

#li.sort(reverse=True) 倒叙排序
li.sort(reverse=True)
print(li)

输出:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[10, 4, 7, 9, 8, 6, 5, 1, 3, 2]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

 

奇葩切片:

l = ["a", "b", "c", "d", "e"]
print(l[0:1])
print(l[0:0])
print(l[2:0])

输出:
['a']
[]
[]