鱼C论坛

 找回密码
 立即注册
楼主: 小甲鱼

[知识点备忘] 第034讲:序列(中)

[复制链接]
发表于 2022-4-29 10:58:58 | 显示全部楼层
零基础入门学习Python封面
《零基础入门学习Python》
(最新版)
小甲鱼 著
立即购买
打卡
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-5-10 21:39:21 | 显示全部楼层
生活好难编程好难
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-22 00:31:33 | 显示全部楼层
动动手:0
l=[1, 8, 7, 3, 6, 5, 4, 2]
a=[]
b=[]
l.sort()
for i in l:
    if  i %2==1:
        a.append(i)
    else:
        b.append(i)
print(a+b)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-27 15:14:25 | 显示全部楼层
本帖最后由 剪刀布稀里糊涂 于 2022-6-27 15:16 编辑
leizhenzi23 发表于 2022-3-30 17:37
为什么sorted(t, key=len) 中  FishC 会排 在 Apple的前边呢,因为 FishC长度更长么


楼主知道为什么了吗?  
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-7 11:31:15 | 显示全部楼层
list('ctx')
['c', 't', 'x']
list((1,2,3))
[1, 2, 3]
tuple('ctx')
('c', 't', 'x')
tuple((1,2,3))
(1, 2, 3)
tuple([1,2,3])
(1, 2, 3)
str([1,2])
'[1, 2]'
str((1,3))
'(1, 3)'
s=[1,1,2,3,5]
min(s)
1
t='ctx'
max(t)
'x'
t='Cc'
max(t)
'c'
s=[]
max(s)
Traceback (most recent call last):
  File "<pyshell#14>", line 1, in <module>
    max(s)
ValueError: max() arg is an empty sequence
min(s,'sdfds')
Traceback (most recent call last):
  File "<pyshell#19>", line 1, in <module>
    min(s,'sdfds')
TypeError: '<' not supported between instances of 'str' and 'list'
min(s,default='sdfds')
'sdfds'
len(range(2**333))
Traceback (most recent call last):
  File "<pyshell#21>", line 1, in <module>
    len(range(2**333))
OverflowError: Python int too large to convert to C ssize_t
s=[1,2,5]
sum(s)
8
sum(s,start=13)
21
s=[1,3,2,8,4]
sorted(s)
[1, 2, 3, 4, 8]
s
[1, 3, 2, 8, 4]
s.sort()
s
[1, 2, 3, 4, 8]
s=[1,5,2,8,4]
sorted(s,reverse=True)
[8, 5, 4, 2, 1]
s=[1,5,2,8,4]
sorted(s,reverse=False)
[1, 2, 4, 5, 8]
a=['ads','fgh','ervx','Ervx','ERvx']
sorted(a)
['ERvx', 'Ervx', 'ads', 'ervx', 'fgh']
sorted(a,len(s))
Traceback (most recent call last):
  File "<pyshell#36>", line 1, in <module>
    sorted(a,len(s))
TypeError: sorted expected 1 argument, got 2
sorted(a,key=len)
['ads', 'fgh', 'ervx', 'Ervx', 'ERvx']
sorted('Ctx')
['C', 't', 'x']
sorted('zqy')
['q', 'y', 'z']
sorted(1,0,0,8,6)
Traceback (most recent call last):
  File "<pyshell#40>", line 1, in <module>
    sorted(1,0,0,8,6)
TypeError: sorted expected 1 argument, got 5
sorted((1,0,0,8,6))
[0, 0, 1, 6, 8]
s=[1,3,7,8,5]
reversed(s)
<list_reverseiterator object at 0x103861720>
list(reversed(s))
[5, 8, 7, 3, 1]
s.reverse()
s
[5, 8, 7, 3, 1]
list(reversed("FishC"))
['C', 'h', 's', 'i', 'F']
tuple(reversed("FishC"))
('C', 'h', 's', 'i', 'F')
list(reversed((1, 2, 5, 9, 3)))
[3, 9, 5, 2, 1]
tuple(reversed((1, 2, 5, 9, 3)))
(3, 9, 5, 2, 1)
list(reversed(range(0, 10)))
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
tuple(reversed(range(0, 10)))
(9, 8, 7, 6, 5, 4, 3, 2, 1, 0)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-10 12:45:33 | 显示全部楼层
0.
s = [1, 8, 7, 3, 6, 5, 4, 2]

a = sorted(s)
res = []

for i in a:
    if i % 2 == 1:
        res.append(i)

for j in a:
    if j % 2 == 0:
        res.append(j)

print(res)

1.
s = input("请输入英文:")
a = list(reversed(s.split()))
print(" ".join(a))
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-19 15:10:57 | 显示全部楼层
leizhenzi23 发表于 2022-3-30 17:37
为什么sorted(t, key=len) 中  FishC 会排 在 Apple的前边呢,因为 FishC长度更长么

t1=["FishC","Apple","Book","Banana","Pen"]
sorted(t,key=len)
['Pen', 'Book', 'FishC', 'Apple', 'Banana']

t2=["Apple","Book","Banana","Pen","FishC"]
sorted(t,key=len)
['Pen', 'Book', 'Apple', 'FishC', 'Banana']

你对比一下就知道答案了,很简单
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-2 12:03:47 | 显示全部楼层
学习打卡
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-10 09:53:49 | 显示全部楼层
leizhenzi23 发表于 2022-3-30 17:37
为什么sorted(t, key=len) 中  FishC 会排 在 Apple的前边呢,因为 FishC长度更长么

这两个是一样长的,但他是稳定。
<sorted() 函数的排序结果是稳定的。
假定在待排序的序列中,存在多个相同的元素,经过排序之后,这些元素的相对次序保持不变,则称这种排序算法是稳定的;否则称为不稳定的。>
所以在key = len时,两个字符串一样长的话,会保持原来的相对次序。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2022-9-26 17:25:43 | 显示全部楼层
好难了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-5 19:21:00 | 显示全部楼层
len(range(2**63-1))
Traceback (most recent call last):
  File "<pyshell#90>", line 1, in <module>
    len(range(2**63-1))
OverflowError: Python int too large to convert to C ssize_t

我的电脑是64位,但是它报错了,这是为啥一,我还试了2的六十二次方、2的四十、2的三十二等等,都报错。查看了电脑,显示的是64位,是不是因为使用的Python版本的问题,我用的是3.7.3

但是输入2的三十一次方减1,就是对的。
>>> len(range(2**31-1))
2147483647

我的电脑显示的系统类型是64 位操作系统, 基于 x64 的处理器。

遇到的第二个问题是
s = [1,0,0,8,6]
>>> sum(s)
15
>>> sum(s,start=100)
Traceback (most recent call last):
  File "<pyshell#101>", line 1, in <module>
    sum(s,start=100)
TypeError: sum() takes no keyword arguments

它的结果不是115,结果报错了。想知道是什么原因然后怎么解决?

好像解决了:
>>> i = [3,2,0]
>>> sum(i,5)
10
后面不写start,直接写要加多少等等。


滴滴滴~打卡
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-4 13:27:44 | 显示全部楼层
s = [1,3,5,6]
sum(s)
15
sum(s,start=100)
115
sum(s,100)
115
我的都可以.
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-23 21:03:49 | 显示全部楼层
非常感谢大家的支持
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-27 21:26:25 | 显示全部楼层
打卡打卡
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-2 08:36:37 | 显示全部楼层
我的3.7.4版本不识别sum(s,start=10)中的start=10
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-11 20:52:16 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-1-30 16:58:53 | 显示全部楼层
打卡
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-2-19 18:00:04 | 显示全部楼层
转换序列类型
        list()函数 转换列表函数
        tuple()函数 转换元组函数
        str()函数 转化字符串函数
对比最大最小值
        min()函数
        max()函数
        函数原型
                min(iterable, *[, key, default])
                max(iterable, *[, key, default])
                min(arg1, arg2, *args[, key])
                max(arg1, arg2, *args[, key])
                可迭代对象
                        >>> s = [1, 1, 2, 3, 5]
>>> min(s)
1
                        >>> t = "FishC"
>>> max(t)
's'
                多参数自动对比大小写
                        >>> min(1, 2, 3, 0, 6)
0
                        >>> max(1, 2, 3, 0, 6)
6
len()与sum()
        len函数的可承受范围
                通常对于 32 位平台来说,这个最大的数值是 2**31 - 1;而对于 64 位平台来说,这个最大的数值是 2**63 - 1。如果一旦查出范围,就会出现错误
        sum() 函数用于计算迭代对象中各项的和:
                 start 参数 指定求和计算的起始数值
                        >>> sum(s, start=100)
115
sorted() 和 reversed()
        sorted() 函数将重新排序 iterable 参数中的元素,并将结果返回一个新的列表
                >>> s = [1, 2, 3, 0, 6]
>>> sorted(s)
[0, 1, 2, 3, 6]
                        key参数
                        reverse参数
                        >>> sorted(s, reverse=True)
[6, 3, 2, 1, 0]
>>> s.sort(reverse=True)
>>> s
[6, 3, 2, 1, 0]
>>> t = ["FishC", "Apple", "Book", "Banana", "Pen"]
>>> sorted(t)
['Apple', 'Banana', 'Book', 'FishC', 'Pen']
>>> sorted(t, key=len)
['Pen', 'Book', 'FishC', 'Apple', 'Banana']
        reversed() 函数将返回参数的反向迭代器。
                >>> s = [1, 2, 5, 8, 0]
>>> reversed(s)
<list_reverseiterator object at 0x0000022926732AC0>
                        利用list转换为列表,并且倒序输出
                                >>> list(reversed(s))
[0, 8, 5, 2, 1]
                        reversed() 函数也同样支持任何形式的可迭代对象:
                                >>> list(reversed("FishC"))
['C', 'h', 's', 'i', 'F']
>>> list(reversed((1, 2, 5, 9, 3)))
[3, 9, 5, 2, 1]
>>> list(reversed(range(0, 10)))
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-4 15:16:44 | 显示全部楼层
leizhenzi23 发表于 2022-3-30 17:37
为什么sorted(t, key=len) 中  FishC 会排 在 Apple的前边呢,因为 FishC长度更长么

因为一样长,原列表中谁在前面,sort之后谁就会在前面
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-15 16:41:34 | 显示全部楼层
打卡~~~
思维导图里sum函数start=10写错了,应该是start=100,起始值100
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-18 07:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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