2022.10.18学习记录

这篇博客介绍了如何通过编程调整整数列表中奇数和偶数的位置,以及如何翻转输入的英文句子中单词的顺序。涉及到的编程概念包括字符串、列表、元组的互相转换,查找最值,排序,以及迭代器和可迭代对象的相关操作。示例代码展示了如何实现这些功能,包括使用内置函数和自定义逻辑。
摘要由CSDN通过智能技术生成

序列中

1.字符串,列表,元组互相转换list(),,tuple(),str()

2.找到最值,min(),max(),可以可迭代对象,也可以多个参数

3.len(),sum()

3.sorted(),reversed()

4.排序sorted(),sort只能用在列表上,sorted用在可迭代排序上,并且创建新的列表

reversed()返回一个反向迭代器,前后颠倒的一个顺序

给定一个整数列表,请编程来调整该列表中整数的顺序,使得所有奇数排好序后放在数组的前半部分,所有偶数排好序后放在数组的后半部分。Ty}7=d6m["
gi>fD)@5(^S_|{z~tWO?
比如给定的整数列表是 [1, 8, 7, 3, 6, 5, 4, 2],那么调整后的结果应该是 [1, 3, 5, 7, 2, 4, 6, 8]

nums=[]
nums=map(int,input("输入:").split(","))    #查询用户的输入,拆分为单词,将单词转整数,将其解压nums里
nums=list(nums)

a=[]
b=[]

for each in nums:
    if each%2==0:
        b.append(each)
    else:
        a.append(each)
c=sorted(a)+sorted(b)
print(c)

用户输入一个英文句子,请编程翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。BH!|>Nl1E
nQ4*hetoE6gbj ]!W@pdV_[&r
例如输入字符串是 "I love FishC.",则输出 "FishC. love I"

s=input("输入:")

s=s.strip()             #头尾空格删掉

strs=s.split()          #分割字符串

strs.reverse()          #翻转字符串

print(" ".join(strs))   #拼接字符串

序列下

1.判断是否存在 all所有元素是否存在   any有一个就是true

2.enumerate() 函数用于返回一个枚举对象,它的功能就是将可迭代对象中的每个元素及从 0 开始的序号共同构成一个二元组的列表

3.zip() 函数用于创建一个聚合多个可迭代对象的迭代器。
做法是将作为参数传入的每个可迭代对象的每个元素依次组合成元组,即第 i 个元组包含来自每个参数的第 i 个元素。

每个元素都一一对应,自动截取多余的部分。如果那些值对于我们来说是有意义的,我们可以使用 itertools 模块的 zip_longest() 函数来代替

4.map() 函数会根据提供的函数对指定的可迭代对象的每个元素进行运算,并将返回运算结果的迭代器

5.与 map() 函数类似,filter() 函数也是需要传入一个函数作为参数,不过 filter() 函数是根据提供的函数,对指定的可迭代对象的每个元素进行运算,并将运算结果为真的元素,以迭代器的形式返回

6.迭代器和可迭代对象

区别:可迭代对象咱们可以对其进行重复的操作,而迭代器则是一次性的!

将可迭代对象转换为迭代器:iter() 函数。

7.next()  专门针对迭代器的,返回迭代器下一个项目

请使用学过的知识,自己动手编写代码,利用 for 循环语句,模拟 all()any()enumerate()zip() 这4个函数的实现。

#模拟any
x=[0,0,0]
for each in x:
    if each:
        print(True)
        break
else:
    print(False)

#模拟enumerate()
seasons = ["Spring", "Summer", "Fall", "Winter"]
result=[]
n=0
for each in seasons:
    result.append((n,each))
    n +=1
print(result)

#模拟zip()
x=[1,2,3]
y="fishc"
if len(x)<len(y):
    z=x
else:
    z=y
result=[]
for i in range(len(z)):
    result.append((x[i],y[i]))
print(result)

假设有一个密室,每次只能放一个人进去,在进去之前和出来之后都要求摁一下门口的打卡机按钮,打卡机会依次将名字和进出时间戳记录为以下的格式:QeI$p}+
^M&a=q'psF+_Z`J($:~8>K
times = [1, 3, 3.5, 6.5, 9.5, 10, 10.8]qE,{6`B
names = ["A", "B", "C", "D", "E", "F", "G"]

times = [1, 3, 3.5, 6.5, 9.5, 10, 10.8]
names = ["A", "B", "C", "D", "E", "F", "G"]
    
max_name = [names[0]]
min_name = [names[0]]
max_time = times[0]
min_time = times[0]
    
for i in range(1, len(names)):
    each_name = names[i]
    each_time = times[i] - times[i-1]
    
    if each_time > max_time:
        max_name.clear()
        max_name.append(each_name)
        max_time = each_time
    elif each_time == max_time:
        max_name.append(each_name)
    elif each_time < min_time:
        min_name.clear()
        min_name.append(each_name)
        min_time = each_time
    elif each_time == min_time:
        min_name.append(each_name)
    
print(f"速度最快的是:{min_name},耗费时间是:{min_time}")
print(f"速度最慢的是:{max_name},耗费时间是:{max_time}")

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值