pythony第三章:列表、元组、字典和集合(1)



   第三章:python容器:列表、元祖、字典和集合

    1.列表:列表适合利用顺序和位置定位某一元素,由其是当元素的顺序或内容经常发生改变时,与字符串不同,列表是可变的,
    可以直接对其进行操作:添加新元素,删除或覆盖已有元素。
     使用list()或[]创建列表:列表可以由零个或多个元素组成,元素之间用逗号隔开,整个列表被方括号所包裹
empty_list = []
weekdays = ['monday','tuesday','wednesday','thursday','friday']
big_birds = ['emu','ostrich','cassowary']
first_names = ['graham','john','terry','terry','michael']
#也可以使用list()来创建列表
another_empty_list = list()
print(another_empty_list)

2.使用list()将其他数据类型转换成列表
print(list('cat'))
a_tuple = ('ready','fire','aim')#将元祖转换成列
print(list(a_tuple))
birthday = '1/6/1952'
print(birthday.split('/'))     #使用split()可以依据分隔符将字符串切割成由若干个字符串组成的列表
splitme = 'a/b//c///e'
print(splitme.split('/'))     #如果待分割的字符串包含连续的分隔符,那么在返回的列表中会出现串元素
print(splitme.split('//'))
输出:
['c', 'a', 't']
['ready', 'fire', 'aim']
['1', '6', '1952']
['a', 'b', '', 'c', '', '', 'e']
['a/b', 'c', '/e']

3.获取元素位置
marxes = ['groucho','chico','harpo']
print(marxes[0])   #取第一个元素
print(marxes[1])
print(marxes[2])
print(marxes[-1])  #取倒数第一个元素
print(marxes[-2])
print(marxes[5])   #指定的偏移量对于待访问的列表必须有效,该位置的元素在访问前已经正确赋值,当指定的偏移量小于起始位置或者大于末尾位置时,会产生异常
    输出:
groucho
chico
harpo
harpo
chico

4、包含列表的列表
samll_birds = ['hummingbird','finch']
extinct_birds = ['dodo','passenger','norwegian blue']
carol_birds = [3,'french',2,'turtlddoves']
all_birds = [samll_birds,extinct_birds,'macaw',carol_birds]
print(all_birds[0])
print(all_birds[1])
print(all_birds[1][0])  #[1]代表外层列表all_birds的第二个元素,而[0]代表指向内层列表的第一个元素
输出:
['hummingbird', 'finch']
['dodo', 'passenger', 'norwegian blue']
dodo

5.使用[]修改元素
marxes = ['groucho','chico','harpo']
marxes[2] = 'wanda'
print(marxes)  #通过赋值对其进行修改,列表可以进行修改,字符串不可以
输出:
['groucho', 'chico', 'wanda']


6.指定范围并使用切片提取元素
print(marxes[0:2])
print(marxes[::2])   #从第0个偏移量到到第2个偏移量,其中不包括第2个
print(marxes[::-2])
print(marxes[::-1])  实现逆序
输出:
['groucho', 'chico']
['groucho', 'wanda']
['wanda', 'groucho']
['wanda', 'chico', 'groucho']


7.使用append()添加元素至尾部
marxes = ['groucho','chico','harpo']
marxes.append('zeppo')
print(marex)
输出:
['groucho', 'chico', 'harpo', 'zeppo']


8.使用extend()或+=合并列表
others = ['gummo','karl']
marxes.extend(others)
print(marxes)  #使用extend来合并列表
marxes += others  #使用+=来合并列表
print(marxes)
输出:
['groucho', 'chico', 'harpo', 'zeppo', 'gummo', 'karl']
['groucho', 'chico', 'harpo', 'zeppo', 'gummo', 'karl', 'gummo', 'karl']


9.使用insert()在指定位置插入元素
marxes.insert(3,'gummo')  #使用insert()在指定位置插入元素
print(marxes)
marxes.insert(10,'zeppo')   #如果指定的偏移量位置超过了列表长度,则直接插入到列表最后
print(marxes)
输出:
['groucho', 'chico', 'harpo', 'gummo']
['groucho', 'chico', 'harpo', 'gummo', 'zeppo']


10使用del删除指定位置的元素
del marxes[-1]
print(marxes)   #使用del()删除指定位置的元素,当列表最后一个元素被删除时,位于它后面的其他位置的元素会自动往前移动填补空出的位置,且列表长度减1
       输出:
['groucho', 'chico', 'harpo', 'gummo']


11.使用remove()删除具有指定值的元素
marxes.remove('harpo')  #使用remove删除指定值的元素
print(marxes)
输出:
['groucho', 'chico', 'gummo']


12.使用pop()获取并删除指定位置的元素
marxes.pop()  #使用pop获取并删除指定位置的元素,pop()会返回列表末尾元素
print(marxes)
marxes.pop(1)  #返回偏移量为1的元素,并将其删除
print(marxes)
输出:
['groucho', 'chico']
['groucho']

13.使用index()查询具有特定值的元素位置
print(marxes.index('groucho'))  #使用index()查询具有特定值的元素位置
输出:
0

14.使用in判断值是否存在
print('groucho' in marxes)   #使用in判断列表是否存在某个值
words = ['a','deer','a','feamel','deer']
print('deer' in words)   #同一个值可能多次出现在列表中,但只要出现一次,就返回true


15.使用sort()重新排列元素
a.列表方法sort()会对原列表进行排序,改变列表内容
b.通过函数sorted()则会返回排好序的列表副本,原列表内容不变
如果列表中的元素是数字,它们会默认地被排列成从小到大的升序。如果元素是字符串,则会按照字母表顺序排序

marxes= ['grouch','chico','harpo']
sorted_marxes = sorted(marxes)
print(sorted_marxes)  #使用sorted对列表重新进行排序,返回新生成的列表副本,原列表内容不变
输出;
['chico', 'grouch', 'harpo']
print(marxes)
输出:
['grouch', 'chico', 'harpo']
marxes.sort()
print(marxes)   #使用sort生成新的列表,原列表内容随之改变
输出:
['chico', 'grouch', 'harpo']

numbers = [2,1,4.0,3]
numbers.sort()
print(numbers) 
        输出:
[1, 2, 3, 4.0]
numbers.sort(reverse=True)
print(numbers)
输出:
[4.0, 3, 2, 1]


16.用len获取长度
print(len(marxes))
输出:
3


17.使用=赋值,使用copy()复制
如果将一个列表赋值给多个变量,改变其中的任何一处都会造成其他变量对呀的值也被修改
a = [1,2,3]
print(a)
输出:
[1, 2, 3]
b = a
print(b)
输出:
[1, 2, 3]
a[0] = 'surpriose'
print(a)
输出:
['surpriose', 2, 3]
print(b)  #b和a实际上指向的是同一个对象,因此,无论我们是通过a还是通过b来修改列表的内容,其结果都会作用于双方
输出:
['surpriose', 2, 3]
b[0] = 'i hate suprise'
print(a)
输出;
['i hate suprise', 2, 3]
print(b)
输出;
['i hate suprise', 2, 3]


18.元组
与列表类似,元组也是任意类型元素组成的序列,与列表不同的是,元组是不可变,这意味着一旦元组被定义,将无法再进行增加,删除或修改元素等操作。
因此,元组就像一个常量列表
empty_tuple = ()
print(empty_tuple)
输出:
()
创建一个或多个元素的元组时,每一个元素后面都需要跟一个逗号,即使只包含一个元素也不能省略逗号
one_marx = 'grouco',   
print(one_marx)
输出:
('grouco',)
python解释器会在元组输出时自动添加一对圆括号,但我们不需要这么做,定义元组真正靠的是每个元素的后缀逗号,如果创建的元素数量超过1,最后一个元素后面的逗号可以省略
marx_tuple = 'groucho','chico','harpo'
print(marx_tuple)
输出:
('groucho', 'chico', 'harpo')
将元组赋值给多个变量,这个过程被称为元组解包
marx_tuple = ('groucho','chico','harpo')
a,b,c = marx_tuple
  print(a)
输出;
groucho
print(b)
输出:
chico
利用元组在一条语句中对多个变量的值进行交换,而不需要借助临时变量
password = 'swordfish'
icerem = 'tuttifrutti'
password,icerem = icerem,password   #利用一条语句对多个变量的值进行交换
print(password)
输出:
tuttifrutti
print(icerem)
输出:
swordfish







   








































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值