python list转换string

Python021

python list转换string,第1张

此处直接报错

Traceback (most recent call last):

File "<pyshell#27>", line 1, in <module>

print(" ".join(list1))

TypeError: sequence item 0: expected str instance, int found

解决方案:

print(" ".join('%s' %id for id in list1))

即遍历list的元素,把他转化成字符串。这样就能成功输出1 two three 4结果了。

原文链接: http://t.csdn.cn/AwUqX

>>>str1 = "abcdefg"

>>>list1 = list(str1)

>>>print(list1)

['a', 'b', 'c', 'd', 'e', 'f', 'g']

>>>str4 = "username=admin&passsword=123456"

>>>list4 = str4.split("&")

>>>print(type(list4))

<class 'list'>

>>>print(list4)

['username=admin', 'passsword=123456']

如果我们要对多个字符进行分割,那么可以使用内置模块 re.split() 方法

>>>str5 = "username=admin&passsword=123456"

>>>import re

>>>list5 = re.split("&|=", str5)

>>>print(type(list5))

<class 'list'>

>>>print(list5)

['username', 'admin', 'passsword', '123456']

>>>import json

>>>str3 = '["aaa", "bbb", "ccc", "ddd"]'

>>>list3 = json.loads(str3)

>>>print(type(list3))

<class 'list'>

>>>print(list3)

['aaa', 'bbb', 'ccc', 'ddd']

>>>str2 = "['aaa', 'bbb', 'ccc', 'ddd']"

>>>list2 = eval(str2)

>>>print(type(list2))

<class 'list'>

>>>print(list2)

['aaa', 'bbb', 'ccc', 'ddd']

针对str2,json.loads()方法为何失灵了?

因为 json.loads() 将json格式字符串转换为python对象,而按 json 的标准规范应该使用双引号,如果使用单引号会导致报错。

# 注意,转换之后,双引号会变为单引号

>>>list1 = ["aaa", 123, 'ccc', True]

>>>str1 = str(list1)

>>>print(type(str1))

<class 'str'>

>>>print(str1)

['aaa', 123, 'ccc', True]

>>>list3 = ['username=admin', 'passsword=123456']

>>>str3 = "&".join(list3)

>>>print(type(str3))

<class 'str'>

>>>print(str3)

username=admin&passsword=123456

# 这里列表中使用了单引号

>>>list4 = ['username=admin', 'passsword=123456']

>>>import json

>>>str4 = json.dumps(list4)

>>>print(type(str4))

<class 'str'>

>>>print(str4)

["username=admin", "passsword=123456"]

Python3下字典、字符串及列表的相互转换

在Python操作数据内容时,多数情况下可能遇到下面3种类型的数据处理:

hexstring 如:'1C532145697A8B6F'

str 如:'\x1C\x53\x21\x45\x69\x7A\x8B\x6F'

list 如:[0x1C, 0x53, 0x21, 0x45, 0x69, 0x7A, 0x8B, 0x6F]

各种第三方模块(如pyDes),或者自己写的接口中,可能存在由于类型不统一需要在这3种数据中来回切换的情况。

需要用到的核心的方法如下:

list() 将对象转换为list

str() 将对象转换为str

bytearray() 将对象转换为bytearray

bytearray.fromhex() 将对象从hexstring转换为bytearray

binascii.b2a_hex() 将对象从str转换为hexstring

如:[0x53, 0x21, 0x6A] ->'\x53\x21\x6a'

方法:list ->bytearray ->str

如:'\x53\x21\6a' ->[0x53, 0x21, 0x6A]

方法:逐个字符转成十进制

如: [0x53, 0x21, 0x6A] ->'53216A'

方法:list ->bytearray ->str ->hexstring

如: '53216A' ->[0x53, 0x21, 0x6A]

方法:hexstring ->bytearray ->list

如: '53216A' ->'\x53\x21\x6A'

方法:hexstring ->bytearray ->str

以上内容转自: https://blog.csdn.net/diaoxuesong/article/details/72123415#