元组和字典

元组:

元组的定义:也是一种有序的集合。但与list不同,一旦初始化后不能修改
元组的创建:
tuple1 = () #创建空元组
tuple2 = () #创建空元祖
tuple3 = (1,) #创建只有一个元素的元组
tuple4 = 1, #创建只有一个元素的元组
注意:当元组只有一个元素的时候,我们必须在该元素的末尾添加一个逗号,来消除歧义,元组小括号可以省略,但是逗号不能省略。

获取元组的长度:
len(tuple)

元组的访问:
tuple = (元素1,元素2,元素3,…元素n)
通过索引/下标来进行访问:
tuple[index]
index的取值方位[0,len(tuple)]
index取值可以分为负,为负的时候,从右往左进行取值

修改元组:
在元组内部添加一个可变对象,通过修改可变对象进而来修改元组,在元组中一旦初始化则不能修改值得是元组一旦创建,它对应的元素的指向不会再发生变化。

删除元组:
del tuple

tuple1 = (1,2,3,4,5,True,"hello",[1,2,3])
print(len(tuple1))    #8
print(tuple1[5])    #True
print(tuple1[-2])    #hello
print(tuple1[-1])    #[1,2,3]
tuple1[-1][-1] = "good"    #(1, 2, 3, 4, 5, True, 'hello', [1, 2, 'good'])

元组的操作:
1.元组的连接/组合
使用"+" tuple3 = tuple1 +tuple2
功能:将tuple1与tuple2中的元素去出,重新组合成一个新的元组并且返回。

2.元组的重复
tuple2 = tuple1*n
功能:将tuple1中的元素重复n次输出到新的元组中

3.元素 in 元组
判断元素是否在元组中存在,若存在则返回True,否则返回False

4.元素的截取:
tuple[start?step]
start:默认0
end:默认len(tuple1)
step:默认1,取值可以为负

5.max(tuple1)
功能:返回tuple1中最大的元素

6.min(tuple1)
功能:返回tuple1中最小值

7.tuple(list1)
功能:将列表转为元组

8.二维元组
tuple1 = (t1,t2,t3,…tn)
功能:当元组中的元素刚好又是元组的时候,我们称这个元组为二维元组

9.二维元组的访问
tuple[index1][index2]
index1:代表第几个元组
index2:代表元组中第几个元素

10.tuple.count(x)
功能:统计x在tuple1中出现的次数

11.tuple.index(obj,start,end)
功能:在tuple中查找obj,若找到则返回第一个匹配到的下标值,若找不到则报错查询范围
[start,end),若不指定则查询整个元组。

需求:遍历tuple3

tuple1 = (1,2,3,"hello","good",True,12.34)
tuple2 = (4,5,6)
tuple3 = (tuple1,tuple2)
for t in tuple3:
    for value in t:
        print(value,end="\t")
    print()
    

tuple1 = (1,2,3,"hello","good",True,12.34)
tuple2 = (4,5,6)
print(tuple2.count(5))    #1
print(tuple1.index(3,0,3))    #2
tuple3 = (tuple1,tuple2)
print(tuple3)    #((1, 2, 3, 'hello', 'good', True, 12.34), (4, 5, 6))

字符串:
str1.splitlines(keepend = False)
功能:将str1按行切片,并且将切片的结果作为一个列表返回,keepend默认为Fasle,当keepend为True的时候,显示切片的字符(/n)

str2.join(序列)
功能:将序列中的字符串以指定的str2进行拼接,并将拼接好的字符串返回

min(str1)
功能:返回str1中最小字符(比较的是ASCII码值)

max(str1)
功能:返回str1中的最大字符
str1.replace(old,new,count)
参数一:被替换的字符串
参数二:新的字符串
参数三:替换的个数,若不指定默认全部替换
功能:使用new将str1中old字符串进行替换,若指定count则替换前count个,若不指定则全部替换

判断字符串是否以xx开头
str1.startswith(“xx”[,start][,end])
若是以xx开头则返回True,否则返回False,若指定范围,则取值范围为[start,end],若不指定范围,则默认整个字符串

判断字符串是否以xx结尾
str1.endswitch(“xx”[,start][,end])
若是以xx结尾则返回True,否则返回False,若指定范围,则取值范围为[start,end],若是不指定范围,则默认整个字符串

将普通字符串转为二进制
str1.encode()

将二进制字符串转为普通字符串
str2.decode()
注意:编码的格式与解码的格式必须保持一致

str3 = "you are a nice man nice nice 你是一个好人"
print(str3.endswith("nice"))    #False
print(str3.replace("nice","good"))#you are a good man good good 你是一个好人
dic = str4.maketrans("yn","12")
str4 = str3.translate(dic)
print(str4)    #1ou are a 2ice ma2 2ice 2ice 你是一个好人

字符串常用函数:
str1.isalpha()
功能:判断str1是否为纯字母,若是则返回True,否则返回False
注意:此功能没有考虑中文,中文默认也是字母

str1 = "hello中国"    #True

str1.isalnum()
功能:判断str1是否有数字与字母组成,若是则返回True,否则返回False

str1 = "hello中国"    #True

str1.isupper()
功能:判断str1中出现的字符是否全部都为大写,若是则返回True,否则返回False

str1 = "hEllo "    #False

str1.istitle()
功能:判断str1是否为标题字符串,若是则返回True,否则返回False

str4 = "Hello11"    #True

str1.isspace()
功能:判断str1中是否只包含空白符,若是则返回True,否则返回Fasle

print("".isspace())    #False
print(" ".isspace())    #True

判断电话号码是否合法:
1.11位
2.全部为数字
3.以1开头

phonenum = input("请输入一个电话号码:")
if len(phonenum) == 11 and phonenum.isdecimal() and phonenum.startswith("1"):
    print("电话号码合法。。。")
else:
    print("电话号码非法。。。")

字典:

本质也是一个集合,是一个无序的集合,存储的时候以键值对key-value来进行存储

key的要求:
1.字典中的key必须是唯一的
2.字典中的key必须是不可变对象

不可变对象:
str, number, bool, None, tuple
可变对象:
list, dict, set
字典的创建:
dict1 = {key1:value1,key2:value2,…keyn:valuen}

元素的访问:
dict[key]
dict.get(key)
使用上面两种方式我们都可以访问元素,使用get方法获取的时候,当key不存在的时候,不会报错,而是返回None,若使用key直接获取,当key不存在的时候,则会报错。

scoredict = {"张三":89,"李四":80,"王二":20,"麻子":67}
print(scoredict["王二"])    #20
print(scoredict.get("王二"))	#20
print(scoredict.get("王三"))	#None

添加元素/更改元素:
dict[key] = value
原因:字典中的key不能重复,它对应的值只有一个,后面添加的元素会将前面的覆盖。

scoredict = {"张三":89,"李四":80,"王二":20,"麻子":67}
scoredict["韩梅梅"] = 90
print(scoredict)#{'张三': 89, '李四': 80, '王二': 20, '麻子': 67, '韩梅梅': 90}

scoredict["张三"] = 88
print(scoredict)#{'张三': 88, '李四': 80, '王二': 20, '麻子': 67, '韩梅梅': 90}

删除元素:
dict.pop(key)
功能:根据key删除对应的键值对

scoredict = {"张三":89,"李四":80,"王二":20,"麻子":67}
print(scoredict.pop("麻子"))
print(scoredict) #{'张三': 88, '李四': 80, '王二': 20, '韩梅梅': 90}

字典的遍历:

scoredict = {“张三”:89,“李四”:80,“王二”:20,“麻子”:67}

#单独访问key:

for k in scoredict.key():
    print(k) 	#张三 李四 王二 麻子

#单独访问value:

 for v in scoredict():
    print(v)    #89 80  20  67

#同时访问key和value:

for item in scoredict.items():
print(item)    #('张三', 89)  ('李四', 80)  ('王二', 20)   ('麻子', 67)

列表与字典的区别和联系:
1.存储方式:
字典存储的时候以键值对的方式存储
列表只存储了字典中的value
2.占用空间:
字典占用空间比较大
原因:1.字典需要存储key
2.字典不是紧密排列的
3.查询速度:
当数据量越大的情况下,字典的优势会更加明显

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值