Python 在数组中用特定字符环绕字符串

Python 在数组中用特定字符环绕字符串,python,string,list,Python,String,List,我有一个数组,由一些字符串组成,我需要用星号围绕每个字符串。因此,对于输入: def addAsterisks(["abc", "ded"]) 输出应为:` ["*abc*", "*ded*"] 以下是我尝试过的,但无法使其工作(图为输入数组): 输出只是相同的字符串数组: ["abc", "ded"] x是一个局部变量,因此一旦超出范围,更改它就没有意义。例如,您可以返回修改后的列表并将其分配到某个位置: def addAsterisks(l) return ['*' + x +

我有一个数组,由一些字符串组成,我需要用星号围绕每个字符串。因此,对于输入:

def addAsterisks(["abc", "ded"])
输出应为:`

["*abc*", "*ded*"]
以下是我尝试过的,但无法使其工作(图为输入数组):

输出只是相同的字符串数组:

["abc", "ded"]

x
是一个局部变量,因此一旦超出范围,更改它就没有意义。例如,您可以返回修改后的列表并将其分配到某个位置:

def addAsterisks(l)
    return ['*' + x + '*' for x in l]

myList = addAsterisks(["abc", "ded"])

您正在分配一个临时变量
x
,该变量不会更改实际列表。试试看

return ["*" + x + "*" for x in picture]
或者,如果需要循环:

for i,x in enumerate(picture):
    picture[i] = "*" + x + "*"

您也可以这样做:

In [22]: def addAsterisks(s):
    ...:     newarr = []
    ...:     for i in s:
    ...:         newstr = "*" + str(i) + "*"
    ...:         newarr.append(newstr)
    ...:     print(newarr)
    ...:     

In [23]: addAsterisks(["abc", "ded"])
['*abc*', '*ded*']

您必须修改列表以反映列表中的更改。我使用内联函数来压缩代码

代码

['*'+ i + "*" for picture in pictures]
输入

["abc", "def"]
["*abc*", "*def*"]
输出

["abc", "def"]
["*abc*", "*def*"]

修改数组的名称并返回到要使用的位置。修改一个临时变量(x)是行不通的,因为一旦超出范围,你就会失去它

def addAsterisks(string_list):
  return ['*' + x + '*' for x in string_list]

print addAsterisks(["abc", "ded"])
这将输出:

['*abc*', '*ded*']

以下是解决这个问题的python方法:

A = [ "*"+a+"*" for a in picture ]

提示:阅读Python中的列表理解。

您也可以使用,
str.format()

我在聚会上迟到了

其他解决方案对于特定用例更好,但这可能会帮助其他人(这是一种与其他答案完全不同的方法)

如果您确实确信每个字符串的长度正好为三,则可以执行以下操作:

def addAsterisks(items):
    return [ f'{value:*^5}' for value in items ]

addAsterisks(["abc","def"])

请注意,如果将5改为7,则每个字符串都会有两个星号

“无法使其工作”-您能描述一下发生了什么吗?Python字符串是不可变的,这就是您的解决方案无法工作的原因。或者:
为a中的k返回[f'*{k}*”