巨兔12138 发表于 2023-8-2 10:33:27

修改列表中的字符串

要求是将列表中所有姓张的元素,改成姓王的

红框框起来的代码,我本来以为可以实现这个功能,就是取字符串的名,然后加上“王”姓,拼成符合要求的字符串,再将这个字符串赋值给遍历到的列表元素

但是打印出来的结果,列表中的元素没有变化

请问各位大佬这是为什么啊

isdkz 发表于 2023-8-2 10:33:32

在理解您的问题后,我注意到您提到的代码中存在一些问题。首先,我们需要看一下您的代码以便更好地解释问题所在。请提供标有红框的代码部分。

此外,请确保提供示例输入列表以及预期的输出列表,这样我可以更好地帮助您找到问题所在并提供正确的解决方案。

Mike_python小 发表于 2023-8-2 10:33:45

修改列表中的字符串

根据你的描述,你想要将列表中所有姓"张"的元素改成姓"王"的元素。你的思路是取出字符串的名字部分,加上"王"姓,然后赋值给对应的列表元素。

以下是一个示例程序,展示了如何实现这个功能:


# 输入列表
names = ["张三", "李四", "张五", "王小红", "张六"]

# 遍历列表元素
for i in range(len(names)):
    # 检查是否以"张"姓开头
    if names.startswith("张"):
      # 提取名字部分并加上"王"姓
      name = "王" + names
      # 修改列表元素的值
      names = name

# 打印结果
print(names)


在上面的示例中,我们首先定义了一个名为names的列表,其中包含了不同的姓名。然后我们使用for循环遍历列表中的每个元素。在循环体中,我们检查当前的元素是否以"张"姓开头,如果是,则提取出名字部分,加上"王"姓,赋值给变量name。最后,我们将name赋值给列表中对应的元素,以实现修改列表的目的。

请确保你的代码逻辑正确,以及变量命名没有错误。如果你的代码还是不能达到预期的结果,请检查是否有其他原因导致列表元素没有改变。例如,你可能忘记了重新赋值给正确的列表变量,或者修改的是列表的副本而不是原始列表。

希望这个示例对你有所帮助。如果还有其他问题,请随时提问。

巨兔12138 发表于 2023-8-2 10:36:37

Mike_python小 发表于 2023-8-2 10:33
修改列表中的字符串

根据你的描述,你想要将列表中所有姓"张"的元素改成姓"王"的元素。你的思路是取出字符 ...

您好,除了提供正确代码外,您能告诉我我的代码哪里出现问题了吗

tommyyu 发表于 2023-8-2 10:37:44

你需要改动 lst ,但是在这个示例中你只改动了 item,所以不会对 lst 造成影响。

巨兔12138 发表于 2023-8-2 10:40:44

tommyyu 发表于 2023-8-2 10:37
你需要改动 lst ,但是在这个示例中你只改动了 item,所以不会对 lst 造成影响。

您好,也就是说,这个item是当前遍历的列表元素的一个副本,改变item,并不能改变列表的元素,是这样理解吗

tommyyu 发表于 2023-8-2 10:41:24

巨兔12138 发表于 2023-8-2 10:40
您好,也就是说,这个item是当前遍历的列表元素的一个副本,改变item,并不能改变列表的元素,是这样理解 ...

item 相当于是全新的一个变量,与 lst 无关。您的理解是正确的。

巨兔12138 发表于 2023-8-2 10:42:04

tommyyu 发表于 2023-8-2 10:41
item 相当于是全新的一个变量,与 lst 无关。您的理解是正确的。

好的,非常感谢

woshizhangpengp 发表于 2023-8-2 12:12:34

lst=["赵敏","张绍刚","赵本山","张无忌","武则天","嬴政","马超"]

for i in range(len(lst)):
    if lst.startswith("张"):
      lst="王"+lst
      
print(lst)

改成这样就行了,看下有没有哪里没看懂的
页: [1]
查看完整版本: 修改列表中的字符串