c语言或c++如何改变list的任意项的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言或c++如何改变list的任意项的值相关的知识,希望对你有一定的参考价值。

举例:
list <int> list_test;
list_test.push_back(2);//第一项
list_test.push_back(1);//第二项
list_test.push_back(3);//第三项
/*此时list_a内按顺序为2,1,3*/

问题:
如果我想让list_test第二项里的int数值1加上5应该如何做。

即最终目的为:
list_test内按顺序值为2,6,3

PS:只限定C语言或C++语法。
刚记起来C语言好像没有list的概念,那么请大家就C++如何实现上述问题作答。
下面回答中那位tmupz122请好好审题再答,不是幼儿园孩子了。就是幼儿园孩子也是懂得基本区分事物吧。

参考技术A  list<int>::iterator p;

 p = list_test.begin();

 p++;

 *p += 5;

本回答被提问者采纳

Python列表,用匹配索引改变匹配项的值

【中文标题】Python列表,用匹配索引改变匹配项的值【英文标题】:Python lists, change the value of matching items with matching index 【发布时间】:2021-01-07 20:13:28 【问题描述】:

如果我有

list1 = [1, 2, 3, 6]
list2 = [4, 3, 5, 6]

如何更改两个列表之间匹配的任何值?仅当索引也匹配时

想要的输出是

list1 = [1, 2, 3, 'match']

我在用这个

for idx,x in enumerate(list1):
    if x in list2:  
        list1[idx] = 'match'

但这取代了 3 和 6

【问题讨论】:

【参考方案1】:

使用zip 同时迭代两个列表并检查每个值,而不是使用in

list3 = ['match' if x == y else x for x, y in zip(list1, list2)]

在常规形式中是:

list3 = []
for x, y in zip(list1, list2):
    if x == y:
        list3.append(x)
    else:
        list3.append('match')

【讨论】:

这些都没有给我想要的输出 [1, 2, 3, match] 你确定你不是在看list3而不是list1吗?编辑 list1 是没有意义的,因为那是您的输入数据。 如果您真的想编辑 list1,只需将 list3 替换为 list1 并删除第二个示例中的第一行。【参考方案2】:

这是实现相同结果的另一种方法:

list1 = ['match' if v == list2[k] else v for (k, v) in enumerate(list1)]

【讨论】:

这实际上根本不是最好的答案。 可能不会,但它比您的答案快大约 5%。但是,zip 方法更快。【参考方案3】:

如果您将两个列表压缩在一起,您可以比较它们的项目 - 如果您想保留原始列表并可能编写比列表理解更容易混淆的代码,您可以执行以下操作:

list1 = [1, 2, 3, 6]
list2 = [4, 3, 5, 6]

for i, t in enumerate(zip(list1, list2)):
    a, b = t  # unpack the tuple t
    if a == b:
       list1[i]="match"

最后,list1[1, 2, 3, 'match']

【讨论】:

【参考方案4】:
list(map(lambda a, b: a if a != b else 'match', list1, list2))
[1, 2, 3, 'match']

【讨论】:

以上是关于c语言或c++如何改变list的任意项的值的主要内容,如果未能解决你的问题,请参考以下文章

求C语言高手解答 求e的近似值,直到某一项的值小于或等于10-7为止。 将下列程序补充完整。

c++ c语言 - 数据类型

C语言中取地址跟C++中的引用是一个意思吗?

c语言中,。编写程序求斐波那契数列的第n项和前n项之和。大家看好是【第】n项的值和前n项的合= =。

c语言如何通过函数来改变已经赋初值的全局变量的值?

对于C或C++语言,VS下调试如何查看指针数组的所指向的内容?谢谢指导.