python 练习--更新

1.判断一个列表中的数值是否全部小于某个数

方法一:利用if函数 (只要列表中有一个数字比大 就可以终止比较)
 
n = int(input("请输入需要比较的数字:"))
arr1 = [1,3,4,5,8]
index = 0
for i in arr1:
    if i > n:
        index += 1
        continue
    else:
        print("FALSE")
        break
if index == len(arr1):
    print("True")
方法二:lambda表达式(推荐使用)
print(all(map(lambda x : x < n,arr1)))

用到的语法介绍:

* lambda(arguments:expression)
* map(arguments,list) * ==> 对列表中的每个元素进行计算,并且返回运算结果的迭代器 *
* all(iterable) 接受一个可迭代对象作参数,如果都为true 则为true 否则为false 

*filter()和map()的区别,filter 只返回true的值 可以用来筛选列表中的 奇偶数*
arr2_even = list(filter(lambda x : x % 2 == 0,arr2))
# 奇数:arr2_odd = list(filter(lambda x : x % 2,arr2))
print(arr2_even)

 2.对列表中字符串按照特定的要求进行排序

要求:根据字符串的长度进行排序

arr2 = ["lowry","irving","james","durant"]

方法一:冒泡排序法

基础用法:

# 冒泡排序
def double_sort(arr):
    n = len(arr)
    for i in range(n):
        for j in range(0,n-i-1):
            if arr[j] > arr[j+1]:
                arr[j],arr[j+1] = arr[j+1],arr[j]
    return arr
print(double_sort([1,4,2,6,7,3]))

利用冒泡排序对arr2 进行排序

   def double_sort(arr):
    n = len(arr)
    for i in range(n):
        for j in range(0,n-i-1):
            #改成比较元素的长度
            if len(arr[j]) >len(arr[j+1]):
                arr[j],arr[j+1] = arr[j+1],arr[j]
    return arr
arr2 = ["TOM","irving","JERRY","BLACK_PINK"]
print(double_sort(arr2))

方法二 利用内置函数sorted()

arr2 = ["TOM","irving","JERRY","BLACK_PINK"]
print("sorted方法:",sorted(arr2,key=len))

1.基本语法:sorted(iterable(,key)(,reverse)) 默认是升序排序

print(sorted([12,3,4,56,2]))

2.如果要降序排列  reverse=False

arr = [1,4,2,6,7,3]
print(sorted(arr,reverse=False))

3.利用key ()参数 可以对字典进行关键字排序

students = [("tom",18),("jerry",20),("kelly",19)]
students.sort(key=lambda x : x[1])
print(students)

4.利用key(),ord() 对字符串进行首字母排序

# * ord() 一个字符串作为参数,返回的是ASCII数值
def firstC(str1):
    return ord(str1[0])
print("按照首字母进行排序:",sorted(arr2,key=firstC))

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值