Untitled2
TASK4-6 列表 元组 字符串
列表
1 列表的创建
name=[1,2,3,4,5,6]
name
[1, 2, 3, 4, 5, 6]
name=['苹果','香蕉','火龙果','百香果','蓝莓']
name
['苹果', '香蕉', '火龙果', '百香果', '蓝莓']
name=[1,2,'苹果','香蕉',3.14,[4,5,6]]
name
[1, 2, '苹果', '香蕉', 3.14, [4, 5, 6]]
#根据以上代码结构,列表可包括整数、浮点数、字符串及对象,并且可以混合形成列表。
#列表通过‘中括号’表示。
2 列表添加元素
1)append
name=['苹果','香蕉','火龙果','百香果','蓝莓']
name.append('菠萝')
name
['苹果', '香蕉', '火龙果', '百香果', '蓝莓', '菠萝']
name=['苹果','香蕉','火龙果','百香果','蓝莓']
name.append('菠萝','西瓜')
name
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-9-872c21cff8fc> in <module>
1 name=['苹果','香蕉','火龙果','百香果','蓝莓']
----> 2 name.append('菠萝','西瓜')
3 name
TypeError: append() takes exactly one argument (2 given)
#根据以上输出结果,append只能添加一个元素,若添加多个会报错。
2) extend
name=['苹果','香蕉','火龙果','百香果','蓝莓']
name.extend('菠萝','啤酒梨')
name
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-10-65e4716e2e44> in <module>
1 name=['苹果','香蕉','火龙果','百香果','蓝莓']
----> 2 name.extend('菠萝','啤酒梨')
3 name
TypeError: extend() takes exactly one argument (2 given)
name=['苹果','香蕉','火龙果','百香果','蓝莓']
name.extend(['菠萝','啤酒梨'])
name
['苹果', '香蕉', '火龙果', '百香果', '蓝莓', '菠萝', '啤酒梨']
#根据以上输出结果,extend可以添加多项元素,但必须以列表的方式添加。
name=['苹果','香蕉','火龙果','百香果','蓝莓']
name.append(['菠萝','啤酒梨'])
name
['苹果', '香蕉', '火龙果', '百香果', '蓝莓', ['菠萝', '啤酒梨']]
#我们尝试用append添加一个列表,发现添加后,仍以列表中的列表形式存在。
3)insert
name=['苹果','香蕉','火龙果','百香果','蓝莓']
name.insert(0,'菠萝')
name
['菠萝', '苹果', '香蕉', '火龙果', '百香果', '蓝莓']
name=['苹果','香蕉','火龙果','百香果','蓝莓']
name.insert(0,'菠萝'+'啤酒梨')
name
['菠萝啤酒梨', '苹果', '香蕉', '火龙果', '百香果', '蓝莓']
name=['苹果','香蕉','火龙果','百香果','蓝莓']
name.insert(0,'菠萝','啤酒梨')
name
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-20-b6d658c5261a> in <module>
1 name=['苹果','香蕉','火龙果','百香果','蓝莓']
----> 2 name.insert(0,'菠萝','啤酒梨')
3 name
TypeError: insert expected 2 arguments, got 3
name=['苹果','香蕉','火龙果','百香果','蓝莓']
name.insert(0,['菠萝','啤酒梨'])
name
[['菠萝', '啤酒梨'], '苹果', '香蕉', '火龙果', '百香果', '蓝莓']
#通过以上运行结果,insert与append一样,都只能添加一个元素,但insert可以插入到列表的任意位置,append只能添加在最后。
#python的开始是0,而非1.
3 列表的获取、换位与删除
1)列表的获取
name=['苹果','香蕉','火龙果','百香果','蓝莓']
name (0)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-28-99dd38dd6d19> in <module>
1 name=['苹果','香蕉','火龙果','百香果','蓝莓']
----> 2 name (0)
TypeError: 'list' object is not callable
name=['苹果','香蕉','火龙果','百香果','蓝莓']
name [0]
'苹果'
#获取时,必须用‘中括号’,用‘括号’会报错。
2)列表元素换位
name = ['苹果','香蕉','火龙果','百香果','蓝莓']
temp = name[0]
name[0] = name[1]
name[1]=temp
name
['香蕉', '苹果', '火龙果', '百香果', '蓝莓']
name = ['苹果','香蕉','火龙果','百香果','蓝莓']
name[0] = name[1]
name[1]= name[0]
name
['香蕉', '香蕉', '火龙果', '百香果', '蓝莓']
#第一组代码是置换了‘苹果’与‘香蕉’的位置。
#第二组代码:我们尝试在不对name[0]赋值的情况下,发现代码仅仅执行了‘name[0] = name[1]’,输出的结果并未对‘苹果’与‘香蕉’进行置换。
3) 列表的删除-remove
name=['苹果','香蕉','火龙果','百香果','蓝莓']
name.remove('苹果')
name
['香蕉', '火龙果', '百香果', '蓝莓']
name=['苹果','香蕉','火龙果','百香果','蓝莓']
name.remove('苹果','香蕉')
name
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-48-628fd4bd63c3> in <module>
1 name=['苹果','香蕉','火龙果','百香果','蓝莓']
----> 2 name.remove('苹果','香蕉')
3 name
TypeError: remove() takes exactly one argument (2 given)
name=['苹果','香蕉','火龙果','百香果','蓝莓']
name.remove(1)
name
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-60-e986599d2a29> in <module>
1 name=['苹果','香蕉','火龙果','百香果','蓝莓']
----> 2 name.remove(1)
3 name
ValueError: list.remove(x): x not in list
#根据以上运行结果,remove仅可删除一个元素。
#以上remove括号里的元素(‘苹果’)不可以用‘位数’来代替。
3) 列表的删除-pop
name=['苹果','香蕉','火龙果','百香果','蓝莓']
name.pop('苹果')
name
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-62-94eb8d629fe5> in <module>
1 name=['苹果','香蕉','火龙果','百香果','蓝莓']
----> 2 name.pop('苹果')
3 name
TypeError: 'str' object cannot be interpreted as an integer
name=['苹果','香蕉','火龙果','百香果','蓝莓']
name.pop(2)
name
['苹果', '香蕉', '百香果', '蓝莓']
name=['苹果','香蕉','火龙果','百香果','蓝莓']
name.pop()
'蓝莓'
name=['苹果','香蕉','火龙果','百香果','蓝莓']
name.pop()
name
['苹果', '香蕉', '火龙果', '百香果']
#根据以上运行结果,pop括号中内容只能为‘空’或‘元素的位数’,不可以为元素的名称;
#pop可以提取列表中的任意一个元素,并在元列表中删除这个元素。
#pop为空时,默认提取列表中的最后一个元素,并删除最后一个元素。
3) 列表的删除-del
name=['苹果','香蕉','火龙果','百香果','蓝莓']
del name['苹果']
name
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-66-5370dbd82809> in <module>
1 name=['苹果','香蕉','火龙果','百香果','蓝莓']
----> 2 del name['苹果']
3 name
TypeError: list indices must be integers or slices, not str
name=['苹果','香蕉','火龙果','百香果','蓝莓']
del name[1]
name
['苹果', '火龙果', '百香果', '蓝莓']
#del是一个语句,name是一个列表,故在删除时,后面是‘中括号’。
#del输入‘苹果’会报错,而‘位数1’不会报错呢。
4 列表的操作符
name1=[1,2]
name2=[4,5]
name1+name2
[1, 2, 4, 5]
name1=[12]
name2=[45]
name1+name2
[12, 45]
name1+'小丸子'
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-73-9302c57ffbef> in <module>
----> 1 name1+'小丸子'
TypeError: can only concatenate list (not "str") to list
#列表的以上运算仅能运算相同类型的列表,若想添加元素等,可以用上面阐述的insert等插入等。
name1=[1,2]
name1*2
[1, 2, 1, 2]
name1=[1,2]
name1*=2
name1
[1, 2, 1, 2]
#以上为重复操作符。
name1>name2
False
#比较操作符
(name1<name2) and (1 in name1)
True
(name1>name2) and (1 in name1)
False
name=[1,2,['小丸子','樱桃'],5]
'小丸子' in name
False
name=[1,2,['小丸子','樱桃'],5]
'小丸子' in name[2]
True
#以上涉及到连接操作符及关系操作符。
#在用关系操作符时,若存在列表中的列表,需要写明位数。
name=[1,2,['小丸子','樱桃'],5]
name[2][1]
'樱桃'
#以上是打印列表中列表的演示。
5 列表的内置方法
dir(list)
['__add__',
'__class__',
'__contains__',
'__delattr__',
'__delitem__',
'__dir__',
'__doc__',
'__eq__',
'__format__',
'__ge__',
'__getattribute__',
'__getitem__',
'__gt__',
'__hash__',
'__iadd__',
'__imul__',
'__init__',
'__init_subclass__',
'__iter__',
'__le__',
'__len__',
'__lt__',
'__mul__',
'__ne__',
'__new__',
'__reduce__',
'__reduce_ex__',
'__repr__',
'__reversed__',
'__rmul__',
'__setattr__',
'__setitem__',
'__sizeof__',
'__str__',
'__subclasshook__',
'append',
'clear',
'copy',
'count',
'extend',
'index',
'insert',
'pop',
'remove',
'reverse',
'sort']
#以上便是列表的全部内置方法,部分在前面应用过。
#列表的内置方法的表现形式:例如:list.count,中间用‘.’隔开。
1) count
#计算列表中元素的数量
name=['苹果','香蕉','火龙果','百香果','蓝莓']
name.count('苹果')
1
2) index
#计算列表中某个元素第一次出现的位数。
name=['苹果','香蕉','火龙果','百香果','蓝莓']
name.index('香蕉')
1
3) reverse
name=['苹果','香蕉','火龙果','百香果','蓝莓']
name.reverse()
name
['蓝莓', '百香果', '火龙果', '香蕉', '苹果']
#reverse相当于excel中的置换。
4) sort
name=[6,5,3,4,1,2]
name.sort()
name
[1, 2, 3, 4, 5, 6]
#sort是由小到大的排序。
name=[6,5,3,4,1,2]
name.sort()
name.reverse()
name
[6, 5, 4, 3, 2, 1]
name=[6,5,3,4,1,2]
name1=name.sort()
name1.reverse()
name1
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-5-3f364201ad03> in <module>
1 name=[6,5,3,4,1,2]
2 name1=name.sort()
----> 3 name1.reverse()
4 name1
AttributeError: 'NoneType' object has no attribute 'reverse'
name=[6,5,3,4,1,2]
name.sort(reverse=true)
name
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-8-807acf0a8b32> in <module>
1 name=[6,5,3,4,1,2]
----> 2 name.sort(reverse=true)
3 name
NameError: name 'true' is not defined
name=[6,5,3,4,1,2]
name.sort(reverse=True)
name
[6, 5, 4, 3, 2, 1]
#对无序列表进行逆向排序,有两个方法,一个是sort+reverse,另一个是sort(reverse=true),sort本身默认为reverse=false,即取反的否是正顺序。
#True的表示,第一个字母必须是大写,否则会报错。
5)分片
name=['苹果','香蕉','火龙果','百香果','蓝莓']
name1=name[1:]
name1
['香蕉', '火龙果', '百香果', '蓝莓']
name=['苹果','香蕉','火龙果','百香果','蓝莓']
name1=name[1:2]
name1
['香蕉']
#根据以上运行结果,列表在分片时,关键符号‘冒号’。第一组代码,说明是从1位数的元素到最后,第二组代码,仅有1位数的元素,原因是列表在分片时,是含左不含右的。
6)拷贝
name=[6,5,3,4,1,2]
name1=name[:]
name1
[6, 5, 3, 4, 1, 2]
name=[6,5,3,4,1,2]
name2=name
name2
[6, 5, 3, 4, 1, 2]
name=[6,5,3,4,1,2]
name1=name[:]
name.sort()
name1
[6, 5, 3, 4, 1, 2]
name=[6,5,3,4,1,2]
name2=name
name.sort()
name2
[1, 2, 3, 4, 5, 6]
#根据以上结果,name1的拷贝方式与name2的拷贝方式有不同,但当name发生变化后,name1未跟随name发生变化,而name2则跟随name发生了变化。原因是,name1是分片式拷贝,而name2则相当于赋值,故name2会发生变化。
元组
1 元组的标志
name=(1,2,3)
name1=(1)
name2=1,2,3
type(name)
tuple
name=(1,2,3)
name1=(1)
name2=1,2,3
type(name1)
int
name=(1,2,3)
name1=(1)
name2=1,2,3
type(name2)
tuple
#根据以上结果,元组的界定是通过‘逗号’,而非括号等。
2 元组的操作符
#元组的分片、重复、关系、逻辑、成员操作符等与列表同。
1) 元组的分片
name = (1,2,3)
name1 = name[2:]
name1
(3,)
name = (1,2,3)
name1 = name[:]
name1
(1, 2, 3)
#元组的元素不可以删除,但可以通过分片的方式,获取某些元素。
2)元组的拼接
name = (1,2,3)
name1 = name[1:] + ('小丸子','小樱桃')
name1
(2, 3, '小丸子', '小樱桃')
#元组的拼接,拼接对象必须都是元组。
3)元组的重复
name = (1,2,3)
name * 2
(1, 2, 3, 1, 2, 3)
4)元组的关系
name = (1,2,3)
name1 = (4,5,6)
(name + name1) > name1
False
5)元组的成员操作符
name = (1,2,3)
1 in name
True
字符串
#字符串的操作符使用方法与元组类似,都包括分片、关系、逻辑、成员等。
1 字符串的内置方法
#内置方法的表现方式:‘字符串.内置方法’。
#1)capitalize :将字符串的第一个字母转化成大写。
str = 'like'
str.capitalize()
'Like'
#2) casefold :把整个字符串的所有字符改为小写。
#3) center(width) :将字符串居中,并使用空格填充至长度width的新字符串。
#4) count(sub[,start[,end]]):返回sub在字符串里边出现的次数,start和end参数表示范围,可选。
str = 'like'
str.count('i')
1
#5) encode(encoding=‘utf-8’,error=‘strict’) :以encoding指定的编码格式对字符串进行编码。
#6) endswith(sub[,start[,end]]) :检查字符串是否以sub子字符串结束,如果返回true,否则返回false,start和end参数表示范围,可选。
#7)expandtabs([tabsize=8]) :把字符串中的tab符号(\t)转化为空格,如不指定参数,默认的空格数是tabsize=8。
str1= 'l\tik\te'
str1.expandtabs(2)
'l ik e'
#8)find(sub[,start[,end]]) :检测sub是否包含在字符串中,如果有则返回索引值,否则返回-1,start和end参数表示范围,可选。
#9)isnumeric() :如果字符串中只包含数字字符,则返回true,否则返回false。
#10)isspace() :如果字符串中只包含空格,则返回true,否则返回false。
#11)istitle() :如果字符串是标题化(所有的单词都是以大写开始,其余字母均小写),则返回true,否则返回false。
#12)isupper() :如果字符串中至少包含一个区分大小写的字符,并且这些字符都是大写,则返回True。否则false。
#13)join(sub) :以字符串作为分隔符,插入到sub中所有的字符之间。
#14)ljust(with) :返回一个左对齐的字符串,并使用空格填充至长度为width的新字符串。
#15)lower() :转换字符串中所有大写字符为小写。
#16)istrip() :去掉字符串左边的所有空格。
#17)partition(sub) :找到子字符串sub,把子字符串分成一个3元组(pre_sub,sub,sub,fol_sub),如果字符串中不包括sub则返回(‘原字符串’,‘’,‘’)。
#18)replace(old,new[,count]) :把字符串中的old子字符串替换成new子字符串,如果count指定,则替换不超过count次。
#19)rfind(sub[,start[,end]]) :类似于find()方法,不过是从右边开始查找。
2 字符串的格式化
#字符串格式化,即按统一的规则输出。
"{0}like{1}{2}".format("I","樱桃","小丸子")
'Ilike樱桃小丸子'
#format为格式化函数。
本文地址:https://blog.csdn.net/weixin_45582019/article/details/107648955
上一篇: python爬虫实战 爬取B站柯南弹幕+梳理主线剧情
下一篇: 网络推广不是以量取胜