鱼C论坛

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

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

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

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

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

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

序列相关的函数:
1、列表、元祖、字符串相互转换:list():转换成列表. tuple():转换成元祖. str():字符串
  1. #list:将可迭代序列转换成列表
  2. list("i love you")
  3. ['i', ' ', 'l', 'o', 'v', 'e', ' ', 'y', 'o', 'u']
  4. list((1,3,4))#将元祖转换成列表
  5. [1, 3, 4]
  6. #touple将可迭代对象转换成元祖
  7. tuple("djsids")
  8. ('d', 'j', 's', 'i', 'd', 's')
  9. #str 将可迭代对象转换成字符串
  10. str((1,2,3))
  11. '(1, 2, 3)'
  12. str(["h","w"])
  13. "['h', 'w']"
复制代码

2、min()和max()对比传入的参数,返回最大值和最小值
  1. s=[1,2,3]
  2. min(s)
  3. 1
  4. max(s)
  5. 3
  6. a="dsefew"
  7. min(a)
  8. 'd'
  9. max(a) #字符串比较的是子母的编码值
  10. 'w'
  11. #若比较的对象是空,可以设置default参数
  12. min([],default="what?")
  13. 'what?'
  14. max([],default="what?")
  15. 'what?'
  16. #两种用法,传入可迭代对象/传入多个参数
  17. min(5,3,4,7)
  18. 3
复制代码

3、len() & sum() len()求长度,有一定的最大范围要求,sum()求和
  1. b = [1,0,2,5,4,3]
  2. sum(b)
  3. 15
  4. #参数start 用来制定计算加数的起始值
  5. sum(s,start=30)
  6. 36
  7. sum(b,start=30)
  8. 45
复制代码

4、sorted():从小到大排序,返回新列表,不影响之前的列表值,支持reverse参数,key参数;用reversed将可迭代对象反转
  1. sorted(b)
  2. [0, 1, 2, 3, 4, 5]
  3. sorted(b,reverse=True) #从大到小
  4. [5, 4, 3, 2, 1, 0]
  5. b
  6. [1, 0, 2, 5, 4, 3]
  7. #key参数
  8. h=["what","the","hell","are","you","doing"]
  9. sorted(h)#对字符串列表排序:排序每个字符串的首字母编码值的大小,若相等,则继续对比二者的第二个字母的编码大小
  10. ['are', 'doing', 'hell', 'the', 'what', 'you']
  11. sorted(h,key=len)
  12. ['the', 'are', 'you', 'what', 'hell', 'doing']
  13. #key参数指定干预排序的函数名,key=len:比较每个字符串的长度,sort也可用key
  14. #sort函数仅适用于列表比大小,sorted适用于所有可迭代对象
  15. sorted((1,9,3,5))
  16. [1, 3, 5, 9]
  17. sorted("ikjhden")
  18. ['d', 'e', 'h', 'i', 'j', 'k', 'n']
  19. #列表有reverse方法,可迭代对象有reversed,返回反向迭代器
  20. reversed(b)
  21. <list_reverseiterator object at 0x1059c9930>
  22. list(reversed(b))
  23. [3, 4, 5, 2, 0, 1]
  24. b.reverse()
  25. b
  26. [3, 4, 5, 2, 0, 1]
  27. #用reversed将可迭代对象反转
  28. list(reversed("isjauh"))
  29. ['h', 'u', 'a', 'j', 's', 'i']
  30. list(reversed((1,2,4,3,1)))
  31. [1, 3, 4, 2, 1]
  32. list(reversed(range(1,5)))
  33. [4, 3, 2, 1]
复制代码


作业:
0:给定一个整数列表,请编程来调整该列表中整数的顺序,使得所有奇数排好序后放在数组的前半部分,所有偶数排好序后放在数组的后半部分
  1. a=[1, 8, 7, 3, 6, 5, 4, 2]
  2. b=[] #存放偶数
  3. c=[] #存放奇数
  4. d=[] #存放最终结果
  5. for i in a:
  6.     if i%2==0:
  7.         b.append(i)
  8.     else:
  9.         c.append(i)
  10. b.sort()
  11. c.sort()
  12. d=c+b
  13. print(d)
复制代码

1. 翻转单词顺序。
用户输入一个英文句子,请编程翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。
例如输入字符串是 "I love FishC.",则输出 "FishC. love I"。
注意1:用户输入的字符串可能会在前面或者后面包含任意数量的空格,但是反转后的结果将会去除这些空格(例如输入字符串是 "   I love FishC.   ",结果依然输出 "FishC. love I")。
注意2:用户输入的字符串中,单词之间可能不止一个空格,但是反转后的结果将统一使用一个空格作为单词之间的间隔(例如输入字符串是 "I   love        FishC.",结果依然输出 "FishC. love I")
  1. #用split() 来筛掉空格
  2. a=input("请输入英文句子:")
  3. b=a.split() #空格为间隔,只保留字母字符串
  4. c=list(reversed(b))#反转操作
  5. print(' '.join(c)) #空格隔开,转为字符串
复制代码


作业答案:
0:列表的 sort() 方法和 sorted() 函数有哪些异同点:
相同:
默认都是从小到大正向排序来自
都支持 key 和 reverse 两个参数
排序的结果可都是列表
都是稳定排序(就是说如果存在多个相同的元素,经过排序之后,这些元素的相对次序保持不变
不同:
一个是列表的方法;一个是独立的函数
一个叫 sort();一个叫 sorted()
列表的 sort() 方法是原地排序;sorted() 函数是讲排序后的结果返回为一个新的列表
列表的 sort() 方法只能对列表的元素进行排序;sorted() 函数则可以对任何形式的可迭代对象进行排序
列表的 sort() 方法返回值是 None;sorted() 函数返回一个新列表
1:
  1. >>> sorted(["PPAP", "ppap", "Ppap", "PPaP"])
  2. ['PPAP', 'PPaP', 'Ppap', 'ppap']
复制代码

没写成列表的形式要自觉扣 1 分噢(因为 sorted() 函数排序后的返回结果总是列表,嘿嘿~),字符串比较记注三个原则就行 —— 26个字母顺序不变;大写字母在小写字母之前;如果第一个字母相同,就比较第二个字母,以此类推
2:
  1. >>> max("FishC") and min("FishC")
  2. 'C'
复制代码

max("FishC") 会得到 's',min("FishC") 会得到 'C', and两边都是数字/字母 true时,返回决定值的那个,即最后值
3.reversed() 函数返回的是一个反向迭代器,它并不支持下表索引的方式获取其中的某个元素
4.去除空格 str.strip() :去除字符串两边的空格  str.lstrip() : 去除字符串左边的空格 str.rstrip() : 去除字符串右边的空格

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-22 06:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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