python中的list、tuple和d

2020-02-10 23:01:48 浏览数 (1)

列表

列表是python中最基本的数据结构之一,并且列表的数据项不需要具有相同的数据类型,创建一个列表,只需把逗号分隔的不同数据项使用方括号括起来即可。具体的定义式如下:

代码语言:javascript复制
list=['变量1','变量2','变量3'......] #变量可以是字符串也可以是数字,是数字时可以直接去掉引号

我们在使用列表时可以对列表进行增(append)、删(remove、del、pop)、索引(index)、倒转(reverse)、拼接(extend)、清空(clear)、插入(insert)、复制(copy)、统计元素次数(count)等操作。

增(append)

代码语言:javascript复制
list=['Alex','Leigou','Rock',1,2,3]

list.append('Sheer')

print(list)

运行结果:

D:Anaconda3python.exe D:/PycharmProjects/pythonz/day2/z.py

['Alex', 'Leigou', 'Rock', 1, 2, 3, 'Sheer']

注:成功将字符串'Sheer'插入到列表中

删(remove、del、pop)

删除时可以根据条件的不同选择remove、del或pop中的任意一个,具体事例如下:

remove()可以删除括号内指定的字符或字符串,但是无法根据列表中的下标进行删除操作,具体如下:

代码语言:javascript复制
list=['Alex','Leigou','Rock',1,2,3]

list.remove('Leigou')

print(list)

运行结果:

D:Anaconda3python.exe D:/PycharmProjects/pythonz/day2/z.py

['Alex', 'Rock', 1, 2, 3]

Del()可以根据列表中的下标位完成删除工作,具体事例如下:

代码语言:javascript复制
list=['Alex','Leigou','Rock',1,2,3]

del list[4]

print(list)

运行结果:

D:Anaconda3python.exe D:/PycharmProjects/pythonz/day2/z.py

['Alex', 'Leigou', 'Rock', 1, 3]

pop()也是根据括号中的下标位完成删除操作的,当括号内没有写下标位时会自动默认删除列表中的最后一个元素,具体事例如下所示:

包含下标位:

代码语言:javascript复制
list=['Alex','Leigou','Rock',1,2,3]

list.pop(2)

print(list)

运行结果:

D:Anaconda3python.exe D:/PycharmProjects/pythonz/day2/z.py

['Alex', 'Leigou', 1, 2, 3]

不包含下标位:

代码语言:javascript复制
list=['Alex','Leigou','Rock',1,2,3]

list.pop()

print(list)

运行结果:

D:Anaconda3python.exe D:/PycharmProjects/pythonz/day2/z.py

['Alex', 'Leigou', 'Rock', 1, 2]

索引(index)

索引(index)通过索引列表中的字符或字符串,可以查找对应的下标,具体实例如下:

代码语言:javascript复制
list=['Alex','Leigou','Rock',1,2,3]

print(list.index('Leigou'))

运行结果:

D:Anaconda3python.exe D:/PycharmProjects/pythonz/day2/z.py

1

插入(insert)

插入(insert)可以在指定的下标位处插入想要插入的元素,具体实例如下:

代码语言:javascript复制
list=['Alex','Leigou','Rock',1,2,3]

list.insert(2,'Sheer')

print(list)

运行结果:

D:Anaconda3python.exe D:/PycharmProjects/pythonz/day2/z.py

['Alex', 'Leigou', 'Sheer', 'Rock', 1, 2, 3]

统计元素次数(count)

统计元素次数(count)可以统计列表中某个元素出现的次数,具体实例如下:

代码语言:javascript复制
list=['l','h','l','g','f','l']

print(list.count("l"))

运行结果:

D:Anaconda3python.exe D:/PycharmProjects/pythonz/day2/z.py

3

拼接(extend)

拼接(extend)可以将两个列表

代码语言:javascript复制
list=['Alex','Leigou','Rock',1,2,3]

list1=[4,5,6,7]

list.extend(list1)

print(list)

运行结果:

D:Anaconda3python.exe D:/PycharmProjects/pythonz/day2/z.py

['Alex', 'Leigou', 'Rock', 1, 2, 3, 4, 5, 6, 7]

倒转(reverse)

倒转(reverse)主要实现列表从前往后的反转,具体实例如下:

代码语言:javascript复制
list=['Alex','Leigou','Rock',1,2,3]

list.reverse()

print(list)

运行结果:

D:Anaconda3python.exe D:/PycharmProjects/pythonz/day2/z.py

[3, 2, 1, 'Rock', 'Leigou', 'Alex']

清空(clear)

清空(clear)主要是将列表中的元素清空,但仍然保留列表,即列表依然存在只是里面不在具有任何元素,具体实例如下:

代码语言:javascript复制
list=['Alex','Leigou','Rock',1,2,3]

list.clear()

print(list)

运行结果:

D:Anaconda3python.exe D:/PycharmProjects/pythonz/day2/z.py

[]

复制(copy)

复制(copy)主要的功能是实现列表的复制,具体实例如下:

代码语言:javascript复制
list=['Alex','Leigou','Rock',1,2,3]

list1=list.copy()

print(list)

print(list1)

运行结果:

D:Anaconda3python.exe D:/PycharmProjects/pythonz/day2/z.py

['Alex', 'Leigou', 'Rock', 1, 2, 3]

['Alex', 'Leigou', 'Rock', 1, 2, 3]

元祖(tuple)

Pyhton中的元祖与列表类似,不同之处在于元祖使用小括号,列表使用中括号;元祖的元不能进行修改,相较于列表,元祖的可操作空间比较小,只有两个方法,即count和index。

元祖的索引(index)方法如下:

代码语言:javascript复制
names=('Alex','Leigou','Rock') #下标位是从0开始的

print(names.index("Leigou"))

运行结果:

D:Anaconda3python.exe D:/PycharmProjects/pythonz/day2/z.py

1

注:主要用于查找元素的下标位

元祖下标位的使用方法:

names=('Alex','Leigou','Rock') #下标位是从0开始的 nums=(1,2,3,4,5) print("names[1]:",names[1]) print("nums[1:3]:",nums[1:3]) #对nums进行截取切片 print("nums:",nums[:])#打印所有的元祖元素可以使用nums[:]

运行结果:

D:Anaconda3python.exe D:/PycharmProjects/pythonz/day2/z.py

names[1]: Leigou

nums[1:3]: (2, 3)

nums: (1, 2, 3, 4, 5)

元祖无法进行修改,但是可以进行连接组合,具体程序如下:

代码语言:javascript复制
names=('Alex','Leigou','Rock') #下标位是从0开始的

nums=(1,2,3,4,5)

print("names nums:",names nums)

运行结果:

D:Anaconda3python.exe D:/PycharmProjects/pythonz/day2/z.py

names nums: ('Alex', 'Leigou', 'Rock', 1, 2, 3, 4, 5)

元祖无法进行删除内部元素的操作,但是可以删除整个元祖,具体程序如下:

代码语言:javascript复制
names=('Alex','Leigou','Rock') #下标位是从0开始的

print(names)

del names

print(names)

运行结果:

D:Anaconda3python.exe D:/PycharmProjects/pythonz/day2/z.py

Traceback (most recent call last):

('Alex', 'Leigou', 'Rock')

  File "D:/PycharmProjects/pythonz/day2/z.py", line 11, in <module>

    print(names)

NameError: name 'names' is not defined

注:删除前可以打印出names,但是当用del删除names后再打印names时以报错说names没有定义

元祖的count方法如下:

代码语言:javascript复制
names=('Alex','Leigou','Rock',1,2,1,1) #下标位是从0开始的

print(names.count(1))

运行结果:

D:Anaconda3python.exe D:/PycharmProjects/pythonz/day2/z.py

3

注:主要用于统计某个字符的个数,更加直观的例子如下:

代码语言:javascript复制
str=("ldlasledlf")

print(str.count("l"))

运行结果:

D:Anaconda3python.exe D:/PycharmProjects/pythonz/day2/z.py

4

字典(Dictionary)

字典(Dictionary)是另一种可变容器类型,且可存储任意类型对象。字典的没个键值key=>value对用冒号(:)分隔每个键值用逗号(,)分隔,整个字典包含在花括号中,格式如下所示:

代码语言:javascript复制
d={key1:value1,key2:value2}

键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一,实例如下:

代码语言:javascript复制
dict={'Name':'Leigou','age':'24','sex':'Boy'}

print("Name:",dict['Name'])

print('age:',dict['age'])

运行结果:

D:Anaconda3python.exe D:/PycharmProjects/pythonz/1.py

Name: Leigou

age: 24

向子典添加新内容的方法是增加新的键/值,修改或删除已有键/值对实例如下:

代码语言:javascript复制
dict={'Name':'Leigou','age':'24','sex':'Boy'}

dict['num']='201822362014236' #添加新的键值对

dict['sex']='girl' #修改性别信息

print(dict)

print('sex:',dict['sex'])

运行结果:

D:Anaconda3python.exe D:/PycharmProjects/pythonz/1.py

{'Name': 'Leigou', 'age': '24', 'sex': 'girl', 'num': '201822362014236'}

sex: girl

字典里的元素能进行单一的删除也能清空字典,显示删除一个字典键值用del命令,清空字典用clear命令。

删除键值(del)

代码语言:javascript复制
dict={'Name':'Leigou','age':'24','sex':'Boy'}

del dict['sex'] #删除字典中sex的键值

print(dict)

print('sex:',dict['sex'])

运行结果:

D:Anaconda3python.exe D:/PycharmProjects/pythonz/1.py

{'Name': 'Leigou', 'age': '24'}

Traceback (most recent call last):

  File "D:/PycharmProjects/pythonz/1.py", line 4, in <module>

    print('sex:',dict['sex'])

KeyError: 'sex'

注:将sex的键值删除以后打印结果显示字典中已无sex的键值,并且再单独输出sex的值时系统将报错。

清空字典(clear)

代码语言:javascript复制
dict={'Name':'Leigou','age':'24','sex':'Boy'}

dict.clear() #删除字典中sex的键值

print(dict)

运行结果:

D:Anaconda3python.exe D:/PycharmProjects/pythonz/1.py

{}

注:清空字典并非删除整个字典,而是将字典中的元素清空,清空后我们仍然可以在字典中添加新的键值。

小拓展:字典的循环可以用以下两种for循环语句,实例如下:

代码语言:javascript复制
info={

    'stu1101':'Jinlei',

    'stu1102':'Xule',

    'stu1103':'Chunchao',

}

for i in info : #字典循环方法1

    print(i,info[i])

print("="*30)

for k,v in info.items() :#字典循环方法2

    print(k,v)

运行结果:

D:Anaconda3python.exe D:/PycharmProjects/pythonz/day2/dictionary.py

stu1101 Jinlei

stu1102 Xule

stu1103 Chunchao

==============================

stu1101 Jinlei

stu1102 Xule

stu1103 Chunchao

注:由上可见两种方法的运行结果相同

0 人点赞