str1 = "12345"
list1 = list(str1)
print list1
str2 = "123 sjhid dhi"
list2 = str2.split() #or list2 = str2.split(" ")
print list2
str3 = ""
list3 = str3.split(".")
print list3
输出为:
['1', '2', '3', '4', '5']
['123', 'sjhid', 'dhi']
['www', 'google', 'com']
2. 列表转字符串
str4 = "".join(list3)
print str4
str5 = ".".join(list3)
print str5
str6 = " ".join(list3)
print str6
输出为:
wwwgooglecom
www google com
1. 字符串转列表
str1 = "hi hello world"
print(str1.split(" "))
输出:
['hi', 'hello', 'world']
2. 列表转字符串
l = ["hi","hello","world"]
print(" ".join(l))
输出:
hi hello world
1、字符串转为列表
str1 = 'a1b2'
ls1 = [str(i) for i in str1]
2、列表转为字符串
ls2 = ['1','a','2','b']
str2 = ''.join(ls2)
Python实现字符串反转的几种方法
第一种:使用字符串切片
result = s[::-1]
第二种:使用列表的reverse方法
l = list(s)
result = "".join(l.reverse())
当然下面也行
l = list(s)
result = "".join(l[::-1])
第三种:使用reduce
result = reduce(lambda x,y:y+x,s)
第四种:使用递归函数
def func(s):
if len(s) <1:
return s
return func(s[1:])+s[0]
result = func(s)
第五种:使用栈
def func(s):
l = list(s) #模拟全部入栈
result = ""
while len(l)>0:
result += l.pop() #模拟出栈
return result
result = func(s)
第六种:for循环
def func(s):
result = ""
max_index = len(s)-1
for index,value in enumerate(s):
result += s[max_index-index]
return result
result = func(s)
python反转列表的三种方式
1、内建函数reversed()
li =[1, 2, 3, 4, 5, 6]
a = list(reversed(li))
print (a)
注意:reversed()函数返回的是一个迭代器,而不是一个List,所以需要list函数转换一下
2、内建函数sorted()
sorted()语法
sorted(iterable[, cmp[, key[, reverse]]])
参数说明:
iterable -- 可迭代对象。
cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
返回值
返回重新排序的列表。
a=[1,2,3,4,5,6,7,8,9]
c=sorted(a, reverse=True)
print (c)
注意:sorted()按降序排列,对于反转内容不是顺序排列的无效果,此处待改善。
3: 使用分片
a=[1,2,3,4,5,6,7,8,9]
d=a[::-1]
print (d)
python列表或字符串内容的倒置方法
第一种比较笨的方法就是用递归,把列表第一个数据移到最后一个,依次循环,直到全部被移到后面,代码如下:
def rever(a):
if a =='':
return a
else:
return rever(a[1:])+a[0]
rever("12345")
结果为:
54321
2. 第二种最简洁,用的是切片法。只需a[::-1]就可以了,
其中第一个: 表示的是切片的区间,如果没有设定数值,默认是全部区间;
第二个:表示的是切片的步数和方向,默认为切片方向为从前向后,默认步数为1.
上面的-1,代表的就是从后向前,一次往前切一次,也就是刚好倒置列表。
测试代码如下:
b = 123456
c = str(b)
c[::-1]
结果为:
'654321'
可以利用这种方法来判断回文数,特别简单。if c[] = c[::-1]:
3. 第三种是python的内置函数,一个是reverse函数,一个是sort函数。
reverse函数。reverse()函数将列表的内容进行了反转,
借助这个特性,可以先将字符串转换成列表,利用reverse()函数进行反转后,再处理成字符串。
测试代码如下:
b = 123456
c = list(str(b))
c.reverse()
print(c)
输出为:
['6', '5', '4', '3', '2', '1']
sort函数和sorted函数。其实放在这里并不合适(因为上面全是关于倒置的,而这个是关于排序的,它会按照一定的顺序重组你的数据),不过既然这个函数是用来排序的,也一块儿说明了。
其形式如下:
sorted(iterable[,cmp[,key[,reverse]]])
list.sort(L, key=None, reverse=False)
其中sorted函数的参数含义如下:
iterable -- 可迭代对象。
cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)
sort函数的参数含义:L代表要排序,key代表的是用于排序的比较元素,reverse同上面一致。
总体来看,sort只能用于列表的排序,效率也更快,消耗的内存较小,而且是直接对列表进行操作,所以会改变列表的原始值。
而sorted函数的可以应用于各种数据结构,范围更加广泛,不过它会调用一个新的数据结构来进行操作,不会更改原数据,所以效率会略低一点。