鱼C论坛

 找回密码
 立即注册
查看: 809|回复: 0

[学习笔记] 零py-(ep-25)

[复制链接]
发表于 2023-11-18 11:46:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Nicole37 于 2023-11-18 11:46 编辑

序列相关的函数:
1、列表、元祖、字符串相互转换:list():转换成列表. tuple():转换成元祖. str():字符串
#list:将可迭代序列转换成列表
list("i love you")
['i', ' ', 'l', 'o', 'v', 'e', ' ', 'y', 'o', 'u']
list((1,3,4))#将元祖转换成列表
[1, 3, 4]
#touple将可迭代对象转换成元祖
tuple("djsids")
('d', 'j', 's', 'i', 'd', 's')
#str 将可迭代对象转换成字符串
str((1,2,3))
'(1, 2, 3)'
str(["h","w"])
"['h', 'w']"
2、min()和max()对比传入的参数,返回最大值和最小值
s=[1,2,3]
min(s)
1
max(s)
3
a="dsefew"
min(a)
'd'
max(a) #字符串比较的是子母的编码值
'w'
#若比较的对象是空,可以设置default参数
min([],default="what?")
'what?'
max([],default="what?")
'what?'
#两种用法,传入可迭代对象/传入多个参数
min(5,3,4,7)
3
3、len() & sum() len()求长度,有一定的最大范围要求,sum()求和
b = [1,0,2,5,4,3]
sum(b)
15
#参数start 用来制定计算加数的起始值
sum(s,start=30)
36
sum(b,start=30)
45
4、sorted():从小到大排序,返回新列表,不影响之前的列表值,支持reverse参数,key参数;用reversed将可迭代对象反转
sorted(b)
[0, 1, 2, 3, 4, 5]
sorted(b,reverse=True) #从大到小
[5, 4, 3, 2, 1, 0]
b
[1, 0, 2, 5, 4, 3]
#key参数
h=["what","the","hell","are","you","doing"]
sorted(h)#对字符串列表排序:排序每个字符串的首字母编码值的大小,若相等,则继续对比二者的第二个字母的编码大小
['are', 'doing', 'hell', 'the', 'what', 'you']
sorted(h,key=len)
['the', 'are', 'you', 'what', 'hell', 'doing']
#key参数指定干预排序的函数名,key=len:比较每个字符串的长度,sort也可用key
#sort函数仅适用于列表比大小,sorted适用于所有可迭代对象
sorted((1,9,3,5))
[1, 3, 5, 9]
sorted("ikjhden")
['d', 'e', 'h', 'i', 'j', 'k', 'n']
#列表有reverse方法,可迭代对象有reversed,返回反向迭代器
reversed(b)
<list_reverseiterator object at 0x1059c9930>
list(reversed(b))
[3, 4, 5, 2, 0, 1]
b.reverse()
b
[3, 4, 5, 2, 0, 1]
#用reversed将可迭代对象反转
list(reversed("isjauh"))
['h', 'u', 'a', 'j', 's', 'i']
list(reversed((1,2,4,3,1)))
[1, 3, 4, 2, 1]
list(reversed(range(1,5)))
[4, 3, 2, 1]

作业:
0:给定一个整数列表,请编程来调整该列表中整数的顺序,使得所有奇数排好序后放在数组的前半部分,所有偶数排好序后放在数组的后半部分
a=[1, 8, 7, 3, 6, 5, 4, 2]
b=[] #存放偶数
c=[] #存放奇数
d=[] #存放最终结果
for i in a:
    if i%2==0:
        b.append(i)
    else:
        c.append(i)
b.sort()
c.sort()
d=c+b
print(d)
1. 翻转单词顺序。
用户输入一个英文句子,请编程翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。
例如输入字符串是 "I love FishC.",则输出 "FishC. love I"。
注意1:用户输入的字符串可能会在前面或者后面包含任意数量的空格,但是反转后的结果将会去除这些空格(例如输入字符串是 "   I love FishC.   ",结果依然输出 "FishC. love I")。
注意2:用户输入的字符串中,单词之间可能不止一个空格,但是反转后的结果将统一使用一个空格作为单词之间的间隔(例如输入字符串是 "I   love        FishC.",结果依然输出 "FishC. love I")
#用split() 来筛掉空格
a=input("请输入英文句子:")
b=a.split() #空格为间隔,只保留字母字符串
c=list(reversed(b))#反转操作
print(' '.join(c)) #空格隔开,转为字符串

作业答案:
0:列表的 sort() 方法和 sorted() 函数有哪些异同点:
相同:
默认都是从小到大正向排序来自
都支持 key 和 reverse 两个参数
排序的结果可都是列表
都是稳定排序(就是说如果存在多个相同的元素,经过排序之后,这些元素的相对次序保持不变
不同:
一个是列表的方法;一个是独立的函数
一个叫 sort();一个叫 sorted()
列表的 sort() 方法是原地排序;sorted() 函数是讲排序后的结果返回为一个新的列表
列表的 sort() 方法只能对列表的元素进行排序;sorted() 函数则可以对任何形式的可迭代对象进行排序
列表的 sort() 方法返回值是 None;sorted() 函数返回一个新列表
1:
>>> sorted(["PPAP", "ppap", "Ppap", "PPaP"])
['PPAP', 'PPaP', 'Ppap', 'ppap']
没写成列表的形式要自觉扣 1 分噢(因为 sorted() 函数排序后的返回结果总是列表,嘿嘿~),字符串比较记注三个原则就行 —— 26个字母顺序不变;大写字母在小写字母之前;如果第一个字母相同,就比较第二个字母,以此类推
2:
>>> max("FishC") and min("FishC")
'C'
max("FishC") 会得到 's',min("FishC") 会得到 'C', and两边都是数字/字母 true时,返回决定值的那个,即最后值
3.reversed() 函数返回的是一个反向迭代器,它并不支持下表索引的方式获取其中的某个元素
4.去除空格 str.strip() :去除字符串两边的空格  str.lstrip() : 去除字符串左边的空格 str.rstrip() : 去除字符串右边的空格

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 04:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表