当前位置:   article > 正文

python基础之列表,元组,字典,集合,字符串的操作_创建列表,元组,字典、集合并实现其基本操作(创建、删除、访问、添加元素)

创建列表,元组,字典、集合并实现其基本操作(创建、删除、访问、添加元素)

一、列表

1、列表的创建与删除

创建数值列表:

语法: list(data)

创建一个10~20(不包括20)中所有偶数的列表

print(list(range(10,20,2)))

结果为:
[10, 12, 14, 16, 18]
  • 1
  • 2
  • 3
  • 4

range()函数是内置函数,用于生成一系列连续的整数,range(start,end,step),其中end用于指定计数的结束值,但不包括该值。

删除列表:

del listname

2、遍历列表元素

a、直接使用for循环实现

verse = ["我是雨","你是风","谁是谁"]
for i in verse:
    print(i)

结果为:
我是雨
你是风
谁是谁

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

b、使用for循环和enumerate()函数实现,共同输出索引和元素值

verse = ["我是雨","你是风","谁是谁"]
for index,i in enumerate(verse):
    print(index,i)

结果为:
0 我是雨
1 你是风
2 谁是谁
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
3、添加,修改和删除列表元素

添加:

append(),在列表末尾追加元素

verse = ["我是雨","你是风","谁是谁"]
verse.append("nini")
print(verse)


结果为:
['我是雨', '你是风', '谁是谁', 'nini']
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

insert(),想列表指定位置插入元素,效率没append()高,不推荐

verse = ["我是雨","你是风","谁是谁","nini"]
verse.insert(1,"易烊千玺")
print(verse)

结果为:
['我是雨', '易烊千玺', '你是风', '谁是谁', 'nini']
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

extend(),将一个列表的全部元素添加到另一个列表里
listname.extend(seq),seq为要添加的列表,seq的内容追加到listname的后面

verse = ["我是雨","你是风","谁是谁"]
seq = [1,2,3,4]
verse.extend(seq)
print(verse)


结果为:
['我是雨', '你是风', '谁是谁', 1, 2, 3, 4]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

修改:

直接通过索引修改

verse = ["我是雨","你是风","谁是谁",1,2,3,4]
verse[4]=222
print(verse)


结果为:eyh
['我是雨', '你是风', '谁是谁', 1, 222, 3, 4]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

删除元素:

a、根据索引删除,用del listname[ 索引 ]

verse = ["我是雨","你是风","谁是谁",1, 222, 3, 4]
print(verse)
del verse[-1]
print(verse)


结果为:
['我是雨', '你是风', '谁是谁', 1, 222, 3, 4]
['我是雨', '你是风', '谁是谁', 1, 222, 3]

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

b、根据元素值删除,用 listname.remove()

verse = ["我是雨","你是风","谁是谁",1,2,3,4]
print(verse)
verse.remove("你是风")
print(verse)


结果为:
['我是雨', '你是风', '谁是谁', 1, 2, 3, 4]
['我是雨', '谁是谁', 1, 2, 3, 4]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
4、对列表进行统计计算

a、获取指定元素出现的次数,listname.count()

verse = ["我是雨","你是风","谁是谁",1,2,3,4,2,2,2]
num = verse.count(2)
print(num)


结果为:
4
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

b、获取指定元素首次出现的下标,listname.index()

verse = ["我是雨","你是风","谁是谁",2,3,4,4,2,2,2]
print(verse.index(2))


结果为:
3

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

c、统计数值列表的元素和,sum(listname[,start])

start表示从哪个数开始,默认从0开始

verse = [2,3,4]
print(sum(verse))


结果为:
9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

5、对列表进行排序

a、使用列表对象的sort()方法实现:

listname.sort(reverse=False)
reverse其值若指定为True,表降序,若为False,表升序

下列为升序
verse = [23,45,2,1,67,8]
verse.sort(reverse=False)
print(verse)
结果为:
[1, 2, 8, 23, 45, 67]

下列为降序
verse = [23,45,2,1,67,8]
verse.sort(reverse=True)
print(verse)
结果为:
[67, 45, 23, 8, 2, 1]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

b、使用内置的sorted()函数实现

sorted(listname,reverse=False)

verse = [23,45,2,1,67,8]
print(sorted(verse))  #默认为升序

结果为:
[1, 2, 8, 23, 45, 67]
  • 1
  • 2
  • 3
  • 4
  • 5

二、元组

1、元组的创建与删除

创建:
a、使用赋值运算符直接创建元组

tuplename = ( )
如果要创建的元组只有一个元素,在定义时,元素后面需要加一个逗号,如 verse = (“yiyi”,)

b、创建数值元组

tuple(data)

创建一个10~20(不包括20)中所有偶数的元组

print(tuple(range(10,20,2)))

结果为:
(10, 12, 14, 16, 18)
  • 1
  • 2
  • 3
  • 4

删除:

del tuplename

2、访问元组元素

print(tuple[索引])

3、元组的连接
coffee = ("土耳其","蓝山","卡布奇洛")
print(coffee+("巴西",))      #注意元组只有一个元素时,后面要加逗号,两者必须都为元组类型

结果为:
('土耳其', '蓝山', '卡布奇洛', '巴西')

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

三、字典

1、字典的创建与删除

创建
a、

dictionary = {‘key1’:‘value1’,‘key2’:‘value2’,‘key3’:‘value3’}
键与值之间用冒号分隔

b、

dictionary = dict( )

python中的dict( )方法除了可以创建一个空字典外,还可以通过已有数据快速创建字典。主要表现为以下两种形式:

1、通过映射函数创建字典

dictionary = dict(zip(list1,list2))

zip( )函数用于将多个列表和元组对应位置的元素组合为元组,list1表示一个列表,用于指定要生成字典的list2表示一个列表,用于指定要生成字典的

name = ("娜娜","丽丽","云云")
sign = ("天秤座","巨蟹座","双鱼座")
dictionary = dict(zip(name,sign))
print(dictionary)

结果为:
{'娜娜': '天秤座', '丽丽': '巨蟹座', '云云': '双鱼座'}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2、通过给定的“键-值对”创建字典

dictionary = dict(key1=value1,key2=value2,key3=value3)

dictionary = dict(娜娜="天秤座",丽丽="巨蟹座",云云="双鱼座")
print(dictionary)

结果为:
{'娜娜': '天秤座', '丽丽': '巨蟹座', '云云': '双鱼座'}
  • 1
  • 2
  • 3
  • 4
  • 5

删除:
删除字典:

del dictionary

删除字典的全部元素:

dictionary.clear( )

2、访问字典
dictionary = dict(娜娜="天秤座",丽丽="巨蟹座",云云="双鱼座")
print(dictionary["娜娜"])

结果为:
天秤座
  • 1
  • 2
  • 3
  • 4
  • 5

当不知道当前存在什么键,可以用下列方法:

dictionary.get(key[,default])
使用字典对象的get( )方法获取指定key的值,key为指定的键,default用于表示当指定的键不存在时,返回一个默认值,如果省略,则返回None。

#若键值不存在,则返回“此值不存在哦”
dictionary = dict(娜娜="天秤座",丽丽="巨蟹座",云云="双鱼座")
print("娜娜的星座是",dictionary.get("娜娜","此值不存在哦"))
结果为:
娜娜的星座是 天秤座


dictionary = dict(娜娜="天秤座",丽丽="巨蟹座",云云="双鱼座")
print(dictionary.get("n","此值不存在哦"))
结果为:
此值不存在哦
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

实例如下:
判断是什么星座,以及星座所对应的性格

name = ("娜娜","丽丽","云云")
sign = ("天秤座","巨蟹座","双鱼座")
person_sign = dict(zip(name,sign))
print(person_sign)
sign_all = ("天秤座","巨蟹座","双鱼座")
nature = ["很美丽哦 嘻嘻","我也不清楚","很善良哦"]
sign_nature = dict(zip(sign_all,nature))
print("娜娜的星座是",person_sign.get("娜娜"))
print("她的性格特点为",sign_nature.get(person_sign.get("娜娜")))


结果为:
{'娜娜': '天秤座', '丽丽': '巨蟹座', '云云': '双鱼座'}
娜娜的星座是 天秤座
她的性格特点为 很美丽哦 嘻嘻

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
3、遍历字典

dictionary.items( ),要搭配使用for循环

verse = {"qq":2933134160,"电话":15592138861,"姓名":"liyu"}
for item in verse.items():
    print(item)

结果为:
('qq', 2933134160)
('电话', 15592138861)
('姓名', 'liyu')

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

上面得到的是元组中的各个元素,如果想要获取具体的每个键和值,可以使用下列代码:

verse = {"明日科技":2933134160,"网易云":15592138861,"腾讯":178677}
for key,value in verse.items():
    print(key,"的联系电话是",value)
    
结果为:
明日科技 的联系电话是 2933134160
网易云 的联系电话是 15592138861
腾讯 的联系电话是 178677   
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
4、添加,修改和删除字典元素

添加元素:

dictionary[key]=value

verse = {"明日科技":2933134160,"网易云":15592138861,"腾讯":178677}
verse["阿里"]=1902834
print(verse)

结果为:
{'明日科技': 2933134160, '网易云': 15592138861, '腾讯': 178677, '阿里': 1902834}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

键值必须唯一,要是添加了一个与字典中重复的键值,则新添加的键值会代替旧的键值,举例如下,新添加网易云的键值:

verse = {"明日科技":2933134160,"网易云":15592138861,"腾讯":178677}
verse["网易云"]=1902834
print(verse)

结果为:
{'明日科技': 2933134160, '网易云': 1902834, '腾讯': 178677}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

删除:直接删除对应的Key

del dictionary[key]

verse = {"明日科技":2933134160,"网易云":15592138861,"腾讯":178677}
verse["网易云"]=1902834
print(verse)
del verse["网易云"]
print(verse)


结果为:
{'明日科技': 2933134160, '网易云': 1902834, '腾讯': 178677}
{'明日科技': 2933134160, '腾讯': 178677}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

四、集合

集合的所有元素都放在一对大括号{ }里面,集合最好的应用是去重。

1、创建集合

1、直接用{ }创建

setname = {element1,element2,element3 }

2、使用set()函数创建 (推荐)

setname = set(iteration)
iteration表示要转化为集合的可迭代对象,可以是列表,元组,range对象,字符串等,set(“命运靠自己主宰”),set([1,2,3,4]),set((“人生苦短”,))

2、向集合中添加和删除元素

添加:

setname.add(element)
element只能使用字符串,数字及布尔型的True或False,不能使用列表,元组等对象。

setname=set(["人生苦短","及时行乐"])
print(setname)
setname.add("哦耶!")
print(setname)

结果为:
{'人生苦短', '及时行乐'}
{'人生苦短', '及时行乐', '哦耶!'}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

删除:
a、删除指定元素,setname.remove( )

setname=set(["人生苦短","及时行乐","哦耶!"])
setname.remove("哦耶!")
print(setname)

结果为:
{'人生苦短', '及时行乐'}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

b、删除一个元素,随机删除

setname=set(["人生苦短","及时行乐","哦耶!"])
setname.pop( )
print(setname)

结果为:
{'哦耶!', '人生苦短'}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

c、清空集合,剩空集合

setname=set(["人生苦短","及时行乐","哦耶!"])
setname.clear( )
print(setname)

结果为:
set()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
3、集合的交集,并集和差集运算

分别使用&,|,-代表交集,并集和差集

举例如下:有python和c语言两门学科,需统计谁既学了python,又学了c,谁学Python,没学c

python = set(["李煜","张扬","菲菲","美美"])
c = set(["菲菲","一一","妮妮","美美"])
print("学习python的同学有",python)
print("学习c语言的同学有",c,)
print("两者都学的",python & c)
print("报了课程的有",python | c)
print("学了python但没有学c的有",python ^ c)

结果为:
学习python的同学有 {'菲菲', '李煜', '张扬', '美美'}
学习c语言的同学有 {'菲菲', '一一', '美美', '妮妮'}
两者都学的 {'菲菲', '美美'}
报了课程的有 {'妮妮', '张扬', '美美', '菲菲', '一一', '李煜'}
学了python但没有学c的有 {'妮妮', '张扬', '一一', '李煜'}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

五、字符串

1、字符串编码转换

a、使用encode( )方法编码

str.encode([encoding=“utf-8”][,errors="strict])
encode( )方法为str对象的方法,用于将字符串转换为二进制数据 (即bytes)
str:表示要进行转换的字符串
encoding=“utf-8”:可选参数,用于指定进行转码时采用的字符编码,默认为utf-8。
errors=“strict”:可选参数,用于指定错误处理方式,其选择值可以是strict(遇到非法字符就抛出异常),ignore(忽略非法字符)等,默认为strict。

举例如下:定义一个名为verse的字符串,内容为“整体嘻嘻哈哈”,然后用encode()方法使其采用GBK编码转化为二进制数,并输出源字符串和转换后的内容。

verse = "整天嘻嘻哈哈"
byte = verse.encode("GBK")
print("原字符串",verse)
print("转换后",byte)

结果为:
原字符串: 整天嘻嘻哈哈
转换后: b'\xd5\xfb\xcc\xec\xce\xfb\xce\xfb\xb9\xfe\xb9\xfe'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

b、使用decode( )解码

decode( )方法为bytes对象的方法,用于将二进制数据转换为字符串

verse = "整天嘻嘻哈哈"
byte = verse.encode("GBK")
print("原字符串:",verse)
print("转换后:",byte)
print("解码后:",byte.decode("GBK"))

结果为:
原字符串: 整天嘻嘻哈哈
转换后: b'\xd5\xfb\xcc\xec\xce\xfb\xce\xfb\xb9\xfe\xb9\xfe'
解码后: 整天嘻嘻哈哈

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
2、字符串常用操作
a、拼接字符串

使用+即可

b、计算字符串的长度
str = "人生苦短,我用python"
print(len(str))

结果为:
13
  • 1
  • 2
  • 3
  • 4
  • 5
c、截取字符串

string[start:end:step],前包后不包

d、分割,合并字符串

分割字符串:

str.split(sep,maxsplit)
sep:用于指定分隔符,默认为(空格,"\n","\t")
maxsplit:用于指定分割的次数
如果不指定sep,那也不能指定maxsplit

str = "商洛学院官网 >>> www.slxy.com"
print(str.split(">>>"))

结果为:
['商洛学院官网 ', ' www.slxy.com']
  • 1
  • 2
  • 3
  • 4
  • 5

合并字符:

strnew=string.join(iterable)
strnew:表示合成后新生成的字符串
string:字符串类型,用于指定合并时的分隔符
iterable:可迭代对象,该对象中的所有元素将被合并为一个新的字符串。

举例如下:通过好友列表,生成全部被@的好友

list_friend = ["花花","烊烊","娜娜"]    #好友列表
str_friend = "@".join(list_friend)     #用@符号进行连接
at = "@"+str_friend                    #由于join()方法,第一个元素前不加分隔符,所以需要手动添加@符号
print("您要@的好友为:",at)


结果为:
您要@的好友为: @花花@烊烊@娜娜
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
3、检索字符串

a、count( )方法

str.count( )

ist_friend = "花花 烊烊 娜娜 花花"
print("字符串",list_friend,"中共出现 花花",list_friend.count("花花"),"次")

结果为:
字符串'花花 烊烊  娜娜 花花' 中共出现 花花 2
  • 1
  • 2
  • 3
  • 4
  • 5

b、find( )方法

用于检索是否包含指定的字符串,若不存在,返回-1,否则返回首次出现该字符串的索引
str.find( )

#存在情况
list_friend = "花花 烊烊  丽丽 花花"
print(list_friend.find("丽丽"))
结果为:
7


#不存在的情况
list_friend = "花花 烊烊  丽丽 花花"
print(list_friend.find("吗"))
结果为:
-1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

c、index( )方法

与find( )类似,只不过index( )当指定字符串不存在时,会出现提示错误,不会返回某个值。
str.index( )

d、startswith( )方法

str.startswith( )
用于检索字符串是否以指定字符串开头

endswith( )
用于检索字符串是否以指定字符串结尾

4、字母的大小写转换

小写:

str.lower( )

str = "WWWWrrT"
print(str.lower())

结果为:
wwwwrrt
  • 1
  • 2
  • 3
  • 4
  • 5

大写:

str.upper( )

str = "WxnhrrT"
print(str.upper())

结果为:
WXNHRRT
  • 1
  • 2
  • 3
  • 4
  • 5
5、去除字符串中的空格和特殊字符

strip( )方法

str.strip([chars])
用于去除左右两侧的空格和特殊字符
chars:可选参数,用于指定要去除的字符,若不指定,则默认去除空格,\t,\r,\n

str = " http://www.baidu.com \t\n "
print(str)
print(str.strip())

结果为:
 http://www.baidu.com 	
 
http://www.baidu.com
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

还有lstript( )及rstript( ),分别表示去除左右空格,这里就不演示了。

6、格式化字符串

格式化字符串:先制定一个模板,在此模板中预留几个空位,然后再根据需要填上相应的内容。这些空位需要通过指定的占位符。

格式化字符串有两种方法:

1、使用%操作符
2、使用字符串对象的format( )方法

name = "my name is {name}"
print(name.format(name="liyu")) 

结果为:
my name is liyu

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/836760
推荐阅读
相关标签
  

闽ICP备14008679号