欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Untitled2

程序员文章站 2022-04-16 16:18:25
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]]#根据以上代码结构,列表可包括整数、浮点数、字符串及对象,并且可以...

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