当前位置: 移动技术网 > 移动技术>手机>苹果 > Untitled2

Untitled2

2020年07月30日  | 移动技术网移动技术  | 我要评论

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网