如何在python中更改str(aList)的行为

时间:2017-08-05 23:21:14

标签: string python-2.7

我试图通过使用python(v2.7.10)脚本解析来从非常大的XML文件中提取信息。我的目标是将这些信息提供给我用C编写的其他项目作为文件中的(非常大的)数组和整数文字。 以下代码演示了我正在做的事情:

import sys

myList = [[1,2,3],[11,22,33]]
size = len(myList)
print("int myList[" + str(size) + "][3] = " + str(myList) + ";\n")

结果是int myList[2][3] = [[1,2,3],[11,22,33]];,但我需要的是C语法:int myList[2][3] = {{1,2,3},{11,22,33}};

有没有办法以str()代替{}打印列表的方式修改[]

1 个答案:

答案 0 :(得分:1)

您可以使用翻译表case '+': ,然后使用 trans函数

str.translate(..)

然后打印:

from string import maketrans

trans = maketrans('[]','{}')
print("int myList[" + str(size) + "][3] = " + str(myList).translate(trans) + ";\n")

但请注意,如果元素不是列表,则可能导致内容在语义上无效。我们只需将>>> from string import maketrans >>> myList = [[1,2,3],[11,22,33]] >>> size = len(myList) >>> trans = maketrans('[]','{}') >>> print("int myList[" + str(size) + "][3] = " + str(myList).translate(trans) + ";\n") int myList[2][3] = {{1, 2, 3}, {11, 22, 33}}; 替换为'[',将'{'替换为']'