一、列表概述

python clickhouse_driver带出列名 python list id_python


内存结构分析:

举例:

python clickhouse_driver带出列名 python list id_开发语言_02


使用举例:

a=['hello','world',95,98.5]
print(a)

在这个代码里面,list是列表名,保存的id值,然后这个id值可以指向保存里面三个数据的id值,三个数据的id值指向具体数值

二、列表的创建

python clickhouse_driver带出列名 python list id_数据_03


举例:

python clickhouse_driver带出列名 python list id_python_04

三、列表特点

python clickhouse_driver带出列名 python list id_开发语言_05


简单举例:

lst=["zhangsan","lisi","wangwu",98]
print(lst)
print(lst[0],lst[-4]) #取出某个元素的值

结构如下:

python clickhouse_driver带出列名 python list id_升序_06

四、列表的相关操作

1、查询索引

python clickhouse_driver带出列名 python list id_数据_07


(1)、index只会返回寻找到第一个的索引值,所以如果列表中有重复元素,index也只会返回第一个

list1=['hello','adasd','dsadsa','zxcxzc','hello']
print(list1.index('hello'))        #输出为0     #虽然list1列表中有两个hello值,但是只会返回第一个找到的索引值,所以输出为0

(2)、如果index找不到指定元素,会报错的

list3=['cx','dsa',9800]
print(list3.index('hello'))         #输出:ValueError: 'hello' is not in list,这个属于报错,会导致下面的代码无法正常执行

(3)、index方法可以指定寻找的序列,index(‘要寻找的值’,x,y),x表示开始寻找的序列,y表示结束寻找的序列

list4=['sadad','xzc','qewqe','yiuy']
print(list4.index('qewqe',0,3))               #输出结果为1

2、获取列表中的单个元素

python clickhouse_driver带出列名 python list id_升序_08


举例:

li=['xcz','sadas','xzxz','wqqww']
print(li[1])                #输出第二个数据
print(li[-1])               #输出最后一个数据
# print(li[6])              超出列表的范围,所以报错

3、获取列表中的多个元素—切片操作

python clickhouse_driver带出列名 python list id_python_09


(注:范围包含stop时,取不到stop)

具体操作:

获取多个元素采用切片法,语法格式如下:

列表名[start:stop:step]

切片获取的列表为一个新的列表,因为他和旧的列表的id值是不相同的

lis=[0,10,20,30,40,50,60,70,80,90]
print(id(lis),lis)
lis1=lis[2:6:1]
print(id(lis1),lis1)

举例1:
省略初始值时,会默认初始值为0

print(list1[:7:1])      #输出[0, 10, 20, 30, 40, 50, 60]

举例2:
省略终止值时,会默认终止值为最后一个数值

print(list1[1::1])       #输出[10, 20, 30, 40, 50, 60, 70, 80, 90]

举例3:
省略步长时,默认步长为1

print(list1[1:7:])       #输出[10, 20, 30, 40, 50, 60]

举例4:
步长为负数时,可以理解为从起始值的位置开始减,一直减到终止值位置

print(list1[6:2:-1])       #输出[60, 50, 40, 30]

4、列表元素的遍历

python clickhouse_driver带出列名 python list id_升序_10


举例:

lst=["zhangsan","lisi","wangwu",98]
for item in lst:
    print(item)

结果如下:

python clickhouse_driver带出列名 python list id_数据_11


5、列表元素的添加

python clickhouse_driver带出列名 python list id_开发语言_12


(1)、append

将需要添加的元素填充到列表的末尾,只允许添加一个元素,如果这个元素是一个列表.会把这个元素当成一个列表,然后全部插入

lis=['zxZ','dwq','wqe','zxc','wr','cfwf']
lis.append(95)
print(lis)              #输出['zxZ', 'dwq', 'wqe', 'zxc', 'wr', 'cfwf', 95]

lis2=[1,2,3,4]
lis.append(lis2)
print(lis)              #输出['zxZ', 'dwq', 'wqe', 'zxc', 'wr', 'cfwf', 95, [1, 2, 3, 4]]

(2)、extend
可以在末尾添加多个元素,是append的有所不同

lis1=['zxZ','dwq','wqe','zxc','wr','cfwf']
lis2=[1,2,3,4]
lis1.extend(lis2)
print(lis1)                  #输出['zxZ', 'dwq', 'wqe', 'zxc', 'wr', 'cfwf', 1, 2, 3, 4]

(3)、insert

lis1=['zxZ','dwq','wqe','zxc','wr','cfwf']
lis2=[1,2,3,4]
lis1.insert(1,lis2)
print(lis1)                 #输出结果['zxZ', [1, 2, 3, 4], 'dwq', 'wqe', 'zxc', 'wr', 'cfwf']

lis1.insert(0,98)
print(lis1)                 #在索引值前面插入字符   [98, 'zxZ', [1, 2, 3, 4], 'dwq', 'wqe', 'zxc', 'wr', 'cfwf']

(4)、切片插入(将切出的部分去掉,再插入需要插入的部分)

lis1=['zxZ','dwq','wqe','zxc','wr','cfwf']
lis2=[1,2,3,4]
lis1[1:4:]=lis2
print(lis1)                 #输出['zxZ', 1, 2, 3, 4, 'wr', 'cfwf']

6、列表元素的删除

python clickhouse_driver带出列名 python list id_python_13


(1)remove()

'''lis=['sad','xzX','xzX','zxXZxxq']
lis.remove('qwe')               #删除没有的元素,报错

lis1=[1,5,6,8,9,7,5]
lis1.remove(5)
print(lis1)                     #删除元素有多个,只删除第一个。输出[1, 6, 8, 9, 7, 5]

(2)、pop()

lis4=[2,5,9,7,'fds']
lis4.pop()
print(lis4)                     #输出[2, 5, 9, 7]

lis5=[5,9,'adasd','xZX','qwe']
lis5.pop(2)
print(lis5)                      #输出[5, 9, 'xZX', 'qwe']

'''lis3=[1,2,3,5,7,9]
lis3.pop(8)
print(lis3)                    #输出IndexError: pop index out of range'''

(3)、切片(切片删除有两种情况,一种是把原列表的元素提取出来,组成一个新的列表,第二种情况是在原来的列表上面插入空的列表,就是用空的列表替换原来的列表)

lis6=[5,9,9,7,2,3,8]
new_list=lis6[2:4]
print(new_list)                     #输出[9, 7]

lis7=[8,9,2,7,33,78,8]
lis7[2:4]=[]
print(lis7)                     #输出[8, 9, 33, 78, 8]

(4)、clear() 清空列表元素
(5)、del 删除列表对象

del lis6

7、列表修改操作
(1)、直接元素修改

lis=[49,8,9,48,56,8,61,7]
print(lis)                  #输出[49, 8, 9, 48, 56, 8, 61, 7]
lis[5]=499
print(lis)                  #输出[49, 8, 9, 48, 56, 499, 61, 7]

(2)、切片赋值

lis1=[789,56,46,5,8,4,65,465,46,64]
lis1[1:2]=['python','cxz','cxzcz']
print(lis1)                 #输出[789, 'python', 'cxz', 'cxzcz', 46, 5, 8, 4, 65, 465, 46, 64]

8、列表的排序操作

python clickhouse_driver带出列名 python list id_开发语言_14


(1)、sort() 在原列表的基础上排序

list=[12,56,33,44,52,1,36,11]
list.sort() #默认升序
print(list,id(list))
list.sort(reverse=True) #reverse=True 为降序
print(list,id(list))
list.sort(reverse=False) #reverse=False 为升序
print(list,id(list))

(2)、sorted() 排序后产生新列表(规则与sort一致)

list=[12,56,33,44,52,1,36,11]
new_list=sorted(list) #默认升序
print(new_list,id(new_list))
new_list=sorted(list,reverse=True) #reverse=True 为降序
print(new_list,id(new_list))
new_list=sorted(list,reverse=False)  #reverse=False 为升序
print(new_list,id(new_list))

8、列表生成式

格式: list=[要存储的列表元素 for i/item in range(a,b)]

python clickhouse_driver带出列名 python list id_数据_15


举例:

print('-----------生成一个含有2,4,6,8,10的列表-----')
li=[2*i for i in range(1,6)]
print(li)