(1)相反顺序输出列表
按相反的顺序输出列表的值。
代码语言:javascript复制# 相反顺序输出列表
# 按相反的顺序输出列表的值。
list1 = [1,2,3,4,5,[23,20],"pig"]
#tip1:通过reverse反转列表
list1.reverse()
print(list1)
#tip2:通过列表切片进行反转
list = list1[::-1]
print(list)
split()
函数
在Python中,split()
函数是一个非常常用的字符串方法,它可以将一个字符串按照指定的分隔符拆分成多个子串,并返回一个包含子串的列表。
split()
函数的语法如下:
str.split([sep [,maxsplit]])
其中,str
表示要进行分割的原字符串,sep
是分隔符,如果不指定分隔符,默认使用空格作为分隔符。maxsplit
表示分割的最大次数,如果指定了该参数,则最多只能分割出maxsplit 1
个子串,如果不指定则不限制分割次数。
下面是一些使用split()
函数的例子:
s = "hello world"
# 不指定分隔符时,默认使用空格作为分隔符
words = s.split()
print(words) # ['hello', 'world']
# 指定分隔符为逗号
s = "apple,banana,orange"
fruits = s.split(",")
print(fruits) # ['apple', 'banana', 'orange']
# 指定分隔符为空字符串,相当于按照每个字符进行分割
s = "hello"
chars = s.split("")
print(chars) # ['', 'h', 'e', 'l', 'l', 'o', '']
# 指定分隔符和分割次数
s = "1,2,3,4,5"
num_list = s.split(",", 2)
print(num_list) # ['1', '2', '3,4,5']
需要注意的是,split()
函数返回的是一个包含子串的列表,如果原字符串中没有分隔符,则分割结果只有一个元素,且该元素就是原字符串本身。此外,如果原字符串以分隔符结尾,split()
函数会忽略最后一个空串的拆分结果。
另外,如果需要将字符串转化为数字,可以使用map()
函数将每个子串转化为数字类型。
map()函数
在Python中,map()函数返回的是一个迭代器,而不是一个列表。当你直接打印它时,Python会默认打印迭代器的内存地址。
如果你想将结果转换为列表并打印出来,你可以使用list()函数来转换它。例如:
代码语言:javascript复制nums = [1, 2, 3, 4, 5]
square_nums = map(lambda x: x**2, nums)
print(square_nums) # <map object at 0x000001>
print(list(square_nums)) # [1, 4, 9, 16, 25]
在这个例子中,我们将一个列表中的数字进行平方,并利用map()函数生成一个迭代器。然后我们直接打印出这个迭代器,得到的是一个内存地址。但是,当我们使用list()函数将其转换为列表后,就可以正确地打印出平方后的数字列表了。
sort()方法
Python中的列表可以使用sort()方法来进行排序。sort()方法有两个可选参数:reverse和key。reverse参数用于控制是否将列表按照降序排序,默认为False,即升序排序;key参数用于指定排序的依据,可以是一个函数或者lambda表达式。
举个例子,对一个包含10个整数的列表进行升序排序,可以这样写:
代码语言:javascript复制my_list = [3, 6, 1, 8, 2, 9, 4, 7, 5, 0]
my_list.sort()
print(my_list)
输出:
代码语言:javascript复制[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
如果要进行降序排序,只需将reverse参数设置为True:
代码语言:javascript复制my_list = [3, 6, 1, 8, 2, 9, 4, 7, 5, 0]
my_list.sort(reverse=True)
print(my_list)
输出:
代码语言:javascript复制[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
如果要按照元素的绝对值进行排序,可以使用key参数:
代码语言:javascript复制my_list = [-3, 6, 1, -8, 2, -9, 4, 7, -5, 0]
my_list.sort(key=abs)
print(my_list)
输出:
代码语言:javascript复制[0, 1, 2, -3, 4, -5, 6, 7, -8, -9]
这里的key参数是一个函数abs,表示按照列表中元素的绝对值进行排序。
(2)对10个数进行排序。
代码语言:javascript复制# 对10个数进行排序。
#首先,通过input将要进行排序的数字按空格间隔输入--(这些数据都是字符串)
#然后,利用split按照默认空格进行字符串切割---(返回出来的是分割好以后的字符串列表)
#然后利用map()函数将字符串列表的所有字符数据转换成int
number=map(int,input("请输入需要排序的数字").split())
print(number)#通过打印我们可以发现打印的结果是内存地址而非我们要的整型数据列表
#通过刚刚对map()函数使用的介绍,我们可以通过list()进行打印结果转换
number = list(number)
print(number)
#升序排序利用sort函数
number.sort()
print(number)
#降序排序 ---将reverse = True传入sort
number.sort(reverse = True)
print(number)
#利用key参数进行绝对值的排序,结果还是原来的那个列表的数据
number.sort(key = abs)
print(number)
最后,感谢大家的支持~