新睿云

> 知识库 > 新睿云python教程—列表转字符串

新睿云python教程—列表转字符串

作者/来源:新睿云小编 发布时间:2020-01-07

应用Python列表十分重要,列表转字符串、字典这些小知识你都会了嘛?多维元组转换列表这些“惊天地泣鬼神”的操作你掌握的咋样?

本文有Python“大神”小睿给您全面解析……

小睿就是卖个萌,真正大佬不要出来打我哟!

Python列表转字符串

str1 = "12345"

list1 = list(str1)

print list1

str2 = "123 sjhid dhi"

list2 = str2.split() #or list2 = str2.split(" ")

print list2

str3 = "www.xinruiyun.cn"

list3 = str3.split(".")

print list3

输出为

['1', '2', '3', '4', '5']

['123', 'sjhid', 'dhi']

['www', 'xinruiyun', 'cn']

3.list >>>str

str4 = "".join(list3)

print str4

str5 = ".".join(list3)

print str5

str6 = " ".join(list3)

print str6

输出为

wwwxinruiyuncn

www.xinruiyun.cn

www xinruiyun cn

Python列表转字典

1现在有两个列表list1 = ['key1','key2','key3']list2 = ['1','2','3']把他们转为这样的字典{'key1':'1','key2':'2','key3':'3'}

>>>list1 = ['key1','key2','key3']

>>>list2 = ['1','2','3']

>>>dict(zip(list1,list2))

{'key1':'1','key2':'2','key3':'3'}

2将嵌套列表转为字典有两种方法

>>>new_list= [['key1','value1'],['key2','value2'],['key3','value3']]

>>>dict(list)

{'key3': 'value3', 'key2': 'value2', 'key1': 'value1'}

或者这样

>>>new_list= [['key1','value1'],['key2','value2'],['key3','value3']]

>>>new_dict = {}

>>> for i in new_list:

...   new_dict[i[0]] = i[1]                #字典赋值,左边为key,右边为value

...

>>> new_dict

{'key3': 'value3', 'key2': 'value2', 'key1': 'value1'}

进阶教程:多维元组转换列表

代码如下

a = ((1,2,3),(4,5,6,),(7,8,9))

b = list(a)

print b

for c in b:

    c = list(c)

    print c

print b

想把这个多维元组变成[[1,2,3],[4,5,6],[7,8,9]]

输出结果如下仍然无法实现这种效果

[(1, 2, 3), (4, 5, 6), (7, 8, 9)]

[1, 2, 3]

[4, 5, 6]

[7, 8, 9]

[(1, 2, 3), (4, 5, 6), (7, 8, 9)]

怎样才能将多维元组全部转换成python的列表

非常感谢大家的帮助问题解决了我来说说我的理解如果有不对的地方还请指正

在使用for从序列中得到的每一个对象事实上都是从原序列中复制了一份因此对此对象进行处理时只是处理了复制体并没有影响到原序列

如果需要对原序列做修改有很多方法下面是在评论中看到的一个比较简单易想的

a = ((1,2,3),(4,5,6,),(7,8,9))

b = list(a)

print b

for c in b:

    b[b.index(c)] = list(c)

    print c

print b

即直接对原序列进行更换运行结果如下

[(1, 2, 3), (4, 5, 6), (7, 8, 9)]

(1, 2, 3)

(4, 5, 6)

(7, 8, 9)

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

a = ((1,2,3),(4,5,6,),(7,8,9))

b = list(a)

b[:] = [list(c) for c in b]

print b

也凑个热闹吧 :)

a = ((1, 2, 3), (4, 5, 6), (7, 8, 9))

b = []

for i in range(len(a)):

    b.append(list(a[i]))

print b

>>> a = ((1,2,3),(4,5,6,),(7,8,9))

>>> print map(list, a)

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

任意维度的tuple稍作修改可以适应任意list, iterable:

def flatten(xs):

    for x in xs:

        if isinstance(x, tuple):

            for xx in flatten(x):

                yield xx

        else:

            yield x

a = ((1,2,3),(4,5,6,),(7,8,9))

print list(flatten(a))

a = ((1, 2, 3),((4, 5), (6)), ((7, 8, 9)))

print list(flatten(a))

有一个非常轻量级也非常经典与方便的python库jerk只有4个api对于这种类型转换的问题用起来非常方便一楼利用map处理是非常方便与得体的但是若对于更加复杂或者其他的情况则不好弄

 a = ( (1, 2, 3), 1, 2, 3, (1, (1, 1), set([1, 2])), {1: 'tutorial'} )

对于这类数值类型转换问题使用jerk中的xlist即可

(jerk 的四个api分别是xlist, xtuple, xint, xlen)

    #先来安装jerk库

    $ pip install jerk

    #使用jerk中xlist的范例

    $ python

    >>> from jerk import *

    >>> a = ( (1, 2, 3), 1, 2, 3, (1, (1, 1), set([1, 2])), {1: 'tutorial'} )

    >>> print xlist(a)

    >>> [[1, 2, 3], 1, 2, 3, [1, [1, 1], set([1, 2])], {1: 'tutorial'}]

热门标签
new year
在线咨询
咨询热线 400-1515-720
投诉与建议
{{item.description}}

—您的烦恼我们已经收到—

我们会将处理结果发送至您的手机

请耐心等待