14、使用 Lambda 在字符串列表中查找回文
编写一个 Python 程序,以使用 Lambda 在给定的字符串列表中查找回文。
根据维基百科 - 回文数字或数字回文是当其数字反转时保持不变的数字。例如,像16461一样,它是“对称的”。术语回文源自回文,回文是指一个单词(如转子或赛车),当其字母颠倒时,其拼写保持不变。前 30 个回文数字(十进制)分别为:0、1、2、3、4、5、6、7、8、9、11、22、33、44、55、66、77、88、99、101、111、121、131、141、151、161、171、181、191、202,…
texts = ["php", "w3r", "Python", "abcd", "Java", "aaa"] print("Orginal list of strings:") print(texts) result = list(filter(lambda x: (x == "".join(reversed(x))), texts)) print("\nList of palindromes:") print(result) ''' Orginal list of strings: ['php', 'w3r', 'Python', 'abcd', 'Java', 'aaa'] List of palindromes: ['php', 'aaa'] '''
【4】join
描述:python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
语法:str . join ( sequence )
参数:sequence – 要连接的元素序列。
返回值:返回通过指定字符连接序列中元素后生成的新字符串。
15、使用 lambda 函数将给定列表乘以给定数量
编写一个Python程序,使用lambda函数将给定列表的每个数量乘以给定数字。打印结果。
方法一:返回的是str类型的
nums = [2, 4, 6, 9 , 11] n=2 print("Original list: ", nums) print("Given number: ",2) filtered_numbers=list(map(lambda number:number*n,nums)) print("Result:") print(' '.join(map(str,filtered_numbers))) #变成str类型 ''' Original list: [2, 4, 6, 9, 11] Given number: 2 Result: 4 8 12 18 22 '''
方法二:简易版,返回的是list类型的,n为给定数字
a=[1,2,3,4] n=2 b=list(map(lambda num:num*n,a)) print(b) ''' [2, 4, 6, 8] '''
【5】将列表变成字符串
使用map和join函数
nums = [2, 4, 6, 9 , 11] print(nums) print(' '.join(map(str,nums))) print(type(' '.join(map(str,nums)))) ''' [2, 4, 6, 9, 11] 2 4 6 9 11 <class 'str'> '''
16、查找给定字符串的数字并将其存储在列表中
编写一个Python程序来查找给定字符串的数字并将其存储在列表中,以排序形式显示大于列表长度的数字。使用 lambda 函数来解决问题。
str1 = "sdf 23 safs8 5 sdfsd8 sdfs 56 21sfs 20 5" print("Original string: ",str1) str_num=[i for i in str1.split(' ')] lenght=len(str_num) numbers=sorted([int(x) for x in str_num if x.isdigit()]) print('Numbers in sorted form:') for i in ((filter(lambda x:x>lenght,numbers))): print(i,end=' ') ''' Original string: sdf 23 safs8 5 sdfsd8 sdfs 56 21sfs 20 5 Numbers in sorted form: 20 23 56 '''
6】split
本文讲述的是string.split(s[, sep[, maxsplit]]),针对string类型的split()函数。
- 主要是切割字符串
- 结果返回由字符串元素组成的一个列表
- 当没有参数的情况下,函数默认会以空格,回车符,空格符等作为分割条件
17、使用 lambda 函数从列表中删除 None 值
这里判断是否是None值使用的是:v is not None
def remove_none(nums): result = filter(lambda v: v is not None, nums) return list(result) nums = [12, 0, None, 23, None, -55, 234, 89, None, 0, 6, -12] print("Original list:") print(nums) print("\nRemove None value from the said list:") print(remove_none(nums)) ''' Original list: [12, 0, None, 23, None, -55, 234, 89, None, 0, 6, -12] Remove None value from the said list: [12, 0, 23, -55, 234, 89, 0, 6, -12] '''
18、使用 lambda 查找给定元组列表中最值
def max_min_list_tuples(class_students): return_max = max(class_students,key=lambda item:item[1])[1] return_min = min(class_students,key=lambda item:item[1])[1] return return_max, return_min class_students = [('V', 62), ('VI', 68), ('VII', 72), ('VIII', 70), ('IX', 74), ('X', 65)] print("Original list with tuples:") print(class_students) print("\nMaximum and minimum values of the said list of tuples:") print(max_min_list_tuples(class_students)) ''' Original list with tuples: [('V', 62), ('VI', 68), ('VII', 72), ('VIII', 70), ('IX', 74), ('X', 65)] Maximum and minimum values of the said list of tuples: (74, 62) '''
19、使用 lambda 对给字符串(数字)排序
编写一个Python程序,使用lambda以数字方式对给定的字符串(数字)列表进行排序。
def sort_numeric_strings(nums_str): result = sorted(nums_str, key=lambda x: int(x)) return result nums_str = ['4','12','45','7','0','100','200','-12','-500'] print("Original list:") print(nums_str) print("\nSort the said list of strings(numbers) numerically:") print(sort_numeric_strings(nums_str)) ''' Original list: ['4', '12', '45', '7', '0', '100', '200', '-12', '-500'] Sort the said list of strings(numbers) numerically: ['-500', '-12', '0', '4', '7', '12', '45', '100', '200'] '''
20、使用 lambda 将字符串转换为元组中的整数
def tuple_int_str(tuple_str): result = tuple(map(lambda x: (int(x[0]), int(x[2])), tuple_str)) return result tuple_str = (('233', 'ABCD', '33'), ('1416', 'EFGH', '55'), ('2345', 'WERT', '34')) print("Original tuple values:") print(tuple_str) print("\nNew tuple values:") print(tuple_int_str(tuple_str)) ''' Original tuple values: (('233', 'ABCD', '33'), ('1416', 'EFGH', '55'), ('2345', 'WERT', '34')) New tuple values: ((233, 33), (1416, 55), (2345, 34)) '''
21、使用 lambda 从列表中删除另外列表的元素
编写一个 Python 程序,使用 lambda 从另一个列表中存在的给定列表中删除所有元素。
def index_on_inner_list(list1, list2): result = list(filter(lambda x: x not in list2, list1)) # 表示在list1当中,但是不在list2当中的 return result list1 = [1,2,3,4,5,6,7,8,9,10] list2 = [2,4,6,8] print("Original lists:") print("list1:", list1) print("list2:", list2) print("\nRemove all elements from 'list1' present in 'list2:") print(index_on_inner_list(list1, list2)) ''' Original lists: list1: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] list2: [2, 4, 6, 8] Remove all elements from 'list1' present in 'list2: [1, 3, 5, 7, 9, 10] '''