-
2020-11-24 03:48:30
可以说我有一个像下面这样的元组:
s = 15, 50, 71, 4, 19
我试图将元组中的每个元素逐个添加到每个元素中.即找到15和50以及15和71等的总和……
所以我试图搞乱map函数,但是我从来没有使用过它,但是我已经想到了这个但是我得到了TypeError:map()的参数2必须支持迭代错误.
test1 = tuple(map(operator.add, s[0], s[1]))
我也尝试使每个元素成为整数,但我也得到一个错误
test1 = tuple(map(operator.add, int(s[0]), int(s[1])))
我希望有人知道另一种方法,我可以完成我想做的事情.
谢谢!!
编辑:
谢谢大家,所有的建议都很有帮助,我发现了一些不同的方法来完成我需要做的事情!
解决方法:
In [7]: s = 15, 50, 71, 4, 19
In [8]: import itertools as IT
In [9]: import operator
In [10]: list(IT.starmap(operator.add, (IT.combinations(s, 2))))
Out[10]: [65, 86, 19, 34, 121, 54, 69, 75, 90, 23]
IT.combinations(s,2)返回一个迭代器,其中包含s中的所有项对:
In [11]: list(IT.combinations(s, 2))
Out[11]:
[(15, 50),
(15, 71),
(15, 4),
(15, 19),
(50, 71),
(50, 4),
(50, 19),
(71, 4),
(71, 19),
(4, 19)]
IT.starmap将operator.add应用于每对.如果希望解压缩参数,可以使用starmap而不是map. operator.add需要2个参数,而这对只是一个对象 – 一个2元组.因此我们使用starmap将2元组解压缩为2个参数,然后将它们传递给operator.add.
标签:python,tuples,map
来源: https://codeday.me/bug/20190722/1507239.html
更多相关内容 -
Python 元组_python元组操作_添加元素_python 元组转字符串
2020-11-22 14:38:29元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。如下实例:tup1 = ('physics', 'chemistry', 1997, 2000);tup2 = (1, 2, 3, 4, 5 );tup3 = "a", "b", "c", "d";创建空元组tup1 = ();...Python 元组
Python的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
如下实例:
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";
创建空元组
tup1 = ();
元组中只包含一个元素时,需要在元素后面添加逗号
tup1 = (50,);
元组与字符串类似,下标索引从0开始,可以进行截取,组合等。
访问元组
元组可以使用下标索引来访问元组中的值,如下实例:
#!/usr/bin/python
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5, 6, 7 );
print "tup1[0]: ", tup1[0]
print "tup2[1:5]: ", tup2[1:5]
以上实例输出结果:
tup1[0]: physics
tup2[1:5]: (2, 3, 4, 5)
修改元组
元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
tup1 = (12, 34.56);
tup2 = ('abc', 'xyz');
# 以下修改元组元素操作是非法的。
# tup1[0] = 100;
# 创建一个新的元组
tup3 = tup1 + tup2;
print tup3;
以上实例输出结果:
(12, 34.56, 'abc', 'xyz')
删除元组
元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组,如下实例:
#!/usr/bin/python
tup = ('physics', 'chemistry', 1997, 2000);
print tup;
del tup;
print "After deleting tup : "
print tup;
以上实例元组被删除后,输出变量会有异常信息,输出如下所示:
('physics', 'chemistry', 1997, 2000)
After deleting tup :
Traceback (most recent call last):
File "test.py", line 9, in
print tup;
NameError: name 'tup' is not defined
元组运算符
与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。
Python 表达式
结果
描述
len((1, 2, 3))
3
计算元素个数
(1, 2, 3) + (4, 5, 6)
(1, 2, 3, 4, 5, 6)
连接
[‘Hi!’] * 4
[‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’]
复制
3 in (1, 2, 3)
True
元素是否存在
for x in (1, 2, 3): print x,
1 2 3
迭代
元组索引,截取
因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素,如下所示:
元组:
L = ('spam', 'Spam', 'SPAM!')
Python 表达式
结果
描述
L[2]
‘SPAM!’
读取第三个元素
L[-2]
‘Spam’
反向读取;读取倒数第二个元素
L[1:]
(‘Spam’, ‘SPAM!’)
截取元素
无关闭分隔符
任意无符号的对象,以逗号隔开,默认为元组,如下实例:
#!/usr/bin/python
print 'abc', -4.24e93, 18+6.6j, 'xyz';
x, y = 1, 2;
print "Value of x , y : ", x,y;
以上实例运行结果:
abc -4.24e+93 (18+6.6j) xyz
Value of x , y : 1 2
元组内置函数
Python元组包含了以下内置函数
序号
方法及描述
1
cmp(tuple1, tuple2)
比较两个元组元素。
2
len(tuple)
计算元组元素个数。
3
max(tuple)
返回元组中元素最大值。
4
min(tuple)
返回元组中元素最小值。
5
tuple(seq)
将列表转换为元组。
喜欢 (0)or分享 (0)
-
在Python中添加元组元素,解析为pandas DataFrame
2020-12-06 04:04:20我有几个元组的Python列表:[(0, 61), (1, 30), (5, 198), (4, 61), (0, 30), (5, 200)][(1, 72), (2, 19), (3, 31), (4, 192), (6, 72), (5, 75)][(3, 12), (0, 51)]...创建这些元组中的每一个都使得它们的格式(键,...我有几个元组的
Python列表:
[(0, 61), (1, 30), (5, 198), (4, 61), (0, 30), (5, 200)]
[(1, 72), (2, 19), (3, 31), (4, 192), (6, 72), (5, 75)]
[(3, 12), (0, 51)]
...
创建这些元组中的每一个都使得它们的格式(键,值):
有七个键:0,1,2,3,4,5,6
目标输出是一个pandas DataFrame,每个列都由键命名:
import pandas as pd
print(df)
0 1 2 3 4 5 6
91 30 0 0 61 198 0
0 72 19 31 192 75 72
51 0 0 12 0 0 0
现在,我在概念上的问题是如果它们的键是相同的,那么如何添加几个元组“值”.
我可以访问给定列表的这些值,例如
mylist = [(0, 61), (1, 30), (5, 198), (4, 61), (0, 30), (5, 200)]
keys = [x[0] for x in mylist]
和
print(keys)
[0, 1, 5, 4, 0, 5]
我不确定如何创建,例如密钥字典:值对,我可以加载到pandas DataFrame中
您可以先使用groupby为每个元素按键求和,然后使用pandas转换为dataframe.请注意,您必须在求和之前先按键排序.
import pandas as pd
from itertools import groupby
data = [
[(0, 61), (1, 30), (5, 198), (4, 61), (0, 30), (5, 200)],
[(1, 72), (2, 19), (3, 31), (4, 192), (6, 72), (5, 75)],
[(0, 71), (1, 40), (5, 98), (4, 21), (0, 10), (5, 21200)],
[(1, 702), (2, 190), (3, 310), (4, 1092), (6, 702), (5, 705)],
] # copying example from @PatrickArtnerz solution
def group_sum(data):
"""given list, return dictionary of summation based on initial key"""
data_dict = {k: sum(v_[1] for v_ in v) for k, v in groupby(sorted(data, key=lambda x: x[0]), lambda x: x[0])}
return data_dict
df = pd.DataFrame(list(map(group_sum, data))).fillna(0)
-
Python 元组(Tuple)
2020-11-24 03:48:33Python 元组(Tuple)Python中的元组类似于列表。两者之间的区别在于,一旦分配了元组,就无法更改其元素,而在列表中,可以更改元素。创建一个元组通过将所有项目(元素)放在括号内()(以逗号分隔)来创建元组。...Python 元组(Tuple)
Python中的元组类似于列表。两者之间的区别在于,一旦分配了元组,就无法更改其元素,而在列表中,可以更改元素。
创建一个元组
通过将所有项目(元素)放在括号内()(以逗号分隔)来创建元组。括号是可选的,但是,使用括号是一个好习惯。
元组可以具有任意数量的项,并且它们可以具有不同的类型(整数,浮点数,列表,字符串等)。
也可以在不使用括号的情况下创建元组。这称为元组包装。
用一个元素创建一个元组有点特殊。
只有一个元素的元组,括号内仅包含一个元素是不够的。我们将需要一个逗号结尾来表明它实际上是一个元组。
示例my_tuple = ("hello")
print(type(my_tuple)) #
# 创建一个只有一个元素的元组
my_tuple = ("hello",)
print(type(my_tuple)) #
# 括号是可选的
my_tuple = "hello",
print(type(my_tuple)) #
访问元组元素
我们可以通过多种方式访问元组的元素。
1.索引
我们可以使用索引运算符[]访问索引从0开始的元组中的项目。
因此,具有6个元素的元组将具有从0到5的索引。尝试访问元组之外的元素(例如6、7 ...)将引发IndexError。
索引必须是整数;因此我们不能使用float或其他类型。如果使用会导致TypeError。
同样,使用嵌套索引访问嵌套元组,如下面的示例所示。my_tuple = ('p','e','r','m','i','t')
print(my_tuple[0]) # 'p'
print(my_tuple[5]) # 't'
# IndexError:列表索引超出范围
# print(my_tuple[6])
# 索引必须是整数
# TypeError: 列表索引必须是整数,而不是浮点数
# my_tuple[2.0]
# 嵌套元组
n_tuple = ("mouse", [8, 4, 6], (1, 2, 3))
# 嵌套索引
print(n_tuple[0][3]) # 's'
print(n_tuple[1][1]) # 4
2.负索引
Python允许对其序列进行负索引。
索引-1表示最后一项,-2表示倒数第二项,依此类推。
示例my_tuple = ('p','e','r','m','i','t')
# 输出: 't'
print(my_tuple[-1])
# 输出: 'p'
print(my_tuple[-6])
3.切片
我们可以使用切片运算符-冒号“:”访问元组中的一系列项目。
示例my_tuple = ('p','r','o','g','r','a','m','i','z')
# 第2个-4个元素
# 输出: ('r', 'o', 'g')
print(my_tuple[1:4])
# 从开始到第二个元素
# 输出: ('p', 'r')
print(my_tuple[:-7])
# 第8个元素到结尾
# 输出: ('i', 'z')
print(my_tuple[7:])
# 从开始到结尾的元素
# 输出: ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
print(my_tuple[:])
通过考虑索引位于元素之间,可以最好地可视化切片,如下所示。因此,如果要访问范围,则需要将元组中的部分切片的索引。
更换元组
与列表不同,元组是不可变的。
这意味着一旦分配了元组的元素就无法更改。但是,如果元素本身是可变的数据类型(如列表),则可以更改其嵌套项目。
我们还可以将元组分配给不同的值(重新分配)。
示例my_tuple = (4, 2, 3, [6, 5])
# TypeError: 'tuple' 对象不支持项分配
# my_tuple[1] = 9
# 但是,可变要素的项目可以变更
my_tuple[3][0] = 9 # Output: (4, 2, 3, [9, 5])
print(my_tuple)
# 元组可以重新分配
my_tuple = ('p','r','o','g','r','a','m','i','z')
# 输出: ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
print(my_tuple)
我们可以使用+运算符来合并两个元组。这也称为串联。
我们还可以使用运算符*,将元组中的元素重复给定次数。
无论+和*操作会导致新的记录。
示例# 串联
# 输出: (1, 2, 3, 4, 5, 6)
print((1, 2, 3) + (4, 5, 6))
# 重复
# 输出: ('Repeat', 'Repeat', 'Repeat')
print(("Repeat",) * 3)
删除元组
如上所述,我们不能更改元组中的元素。这也意味着我们无法删除或删除元组中的项目。
但是可以使用关键字del完全删除一个元组。
示例my_tuple = ('p','r','o','g','r','a','m','i','z')
# 不能删除条目
# TypeError: 'tuple'对象不支持项目删除
# del my_tuple[3]
# 可以删除整个元组
del my_tuple
# NameError: 未定义名称“ my_tuple”
print(my_tuple)
元组方法
元组不提供添加项目或删除项目的方法。仅以下两种方法可用。Python元组方法方法描述
返回等于x的第一项的索引
Python元组方法的一些示例:
示例my_tuple = ('a','p','p','l','e',)
print(my_tuple.count('p')) # Output: 2
print(my_tuple.index('l')) # Output: 3
其他元组操作
1.元组成员资格测试
我们可以使用关键字in来测试项目是否存在于元组中。
示例my_tuple = ('a','p','p','l','e',)
# In 操作
# 输出: True
print('a' in my_tuple)
# 输出: False
print('b' in my_tuple)
# Not in 操作
# 输出: True
print('g' not in my_tuple)
2.遍历元组
使用for循环,我们可以遍历元组中的每个项目。
示例# 输出:
# Hello John
# Hello Kate
for name in ('John','Kate'):
print("Hello",name)
元组相比于列表的优势
由于元组与列表非常相似,因此它们在类似情况下也都使用。
但是,在列表上实现元组具有某些优点。下面列出了一些主要优点:我们通常将元组用于异构(不同)数据类型,将列表用于同类(相似)数据类型。
由于元组是不可变的,因此遍历元组要比使用list更快。因此,性能略有提升。
包含不可变元素的元组可以用作字典的键。对于列表,这是不可能的。
如果您拥有不变的数据,则将其实现为元组将确保其保持写保护。
-
Python 元组数据类型(tuple)详解 [访问元组元素][修改元组元素][删除元组][学习 Python 必备基础知识][看...
2020-11-20 23:59:36元组的所有元素都放在一对小括号( )(小括号不是必须的,只要将各元素用逗号隔开,Python 就会将其视为元组)中,相邻元素之间用逗号,分隔(通常还会在逗号后加一个空格),可以存储数字、字符... -
Python之tuple添加元素及删除元素及修改元素的方式或方法(元组添加元素)
2019-01-05 11:43:011、不支持添加元素【增】 2、不支持删除元素【删】 3、不支持修改元素(修改操作的步骤是:先删除、再添加)【改】 4、支持2种查找元素【查】 第一、根据下标查找元素,称为【访问】元素,时间复杂度为O(1) ... -
python中如何向元组中添加元素
2021-03-17 17:37:551、 >>> a = ("aaa","bbb","ccc","ddd","eee") >>> ...'yyy', 'aaa', 'bbb', 'ccc', 'ddd', 'eee') 标签:aaa,python,xxx,bbb,元组,添加,eee,ccc,ddd 来源: https://www.cnblogs.com/liujiaxin2018/p/14444913.html -
Python 列表,for循环,元组的使用(修改、添加、删除、排序、切片)
2020-11-24 03:48:31Python 列表(List)Python的基本数据类型有整数,浮点数,布尔,字符串,它们是最基本的数据。在实际编程中,我们要经常组织由很多基本数据...Python内置的数据结构有:列表(list)元组(tuple)字典(dict)集合(set)在Py... -
python元组、列表——增删改查
2018-12-28 19:25:08目录 1 python列表 1.1 python列表的概述 1.2 python列表的定义以及查看列表类型 1.3 python列表的循环遍历 ...2 python元组的概述 2.1创建元组和查看类型 2.2 访问元组 2.3 修改元组 2.4 元组一个逗... -
python元组元素可以修改吗
2020-12-29 04:32:33python元组元素可以修改吗发布时间:2020-08-24 13:53:01来源:亿速云阅读:94python元组元素可以修改吗?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单... -
如何向numpy数组的每个元组元素添加项?
2020-12-17 10:14:36我有一个numpy数组a的形状(512,512,4)每个元素都是一个元组:(r,g,b,a)。它表示512x512 RGBA图像。在我有一个numpy数组B的形状(512,512,3)每个元素都是一个元组:(r,g,b)。它代表一个类似的RGB图像。在我想... -
python3中列表、元组、字典的增删改查说明详解
2020-12-22 13:33:40python基础中的列表、元组、字典属于python中内置的序列数据结构。其中序列可以进行的操作包括索引、截取(切片)、加、乘、成员检查等。1、列表列表(list)是最常用的python数据类型之一,列表的数据项不需要具有相同... -
Python 元组
2020-11-20 22:01:07元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。如下实例:实例(Python 2.0+)tup1=('physics','chemistry',1997,2000)tup2=(1,2,3,4,5)tup3="a","b","c","d"创建空元组tup1 = ()元组中只包含... -
Python元组知识点总结
2021-01-01 07:23:16元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。 如下实例: tup1 = ('physics', 'chemistry', 1997, 2000) tup2 = (1, 2, 3, 4, 5 ) tup3 = a, b, c, d 创建空元组 tup1 = () 元组中只包含一个... -
python 元组的元素的元素可以被修改
2018-07-19 15:43:53元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。 假设元组的第3个元素是一个字典,字典整体是不可以被修改的,但是字典里面的元素是可以被修改的。 #!/usr/bin/env python3 # -*- coding: utf-8 -... -
python元组 列表 (取值、替换、插入、添加、删除)
2021-02-09 23:05:281、元组 列表字典元组( 元组是不可变的)hello = (1,2,3,4,5)type(hello) 2、数组(可变)myinfo = ['simida', 20, 'dalao', ['史蒂夫', 2000]]print(myinfo[0])print(myinfo[3][0])type(myinfo) 3、布尔:True , False... -
Python数据类型之元组
2020-11-24 03:48:051. 元组的定义:元组的创建只需要在括号()中添加元素即可创建元组,元素之间是有逗号(,)分隔开。元组()与列表[]相似,不同之处在于列表是可变对象,而元素是不可变对象,即元组一旦创建之后,其元素不可以再修改。2.... -
Python 元组、列表
2021-02-03 14:23:13Python中,最常用的数据结构就是序列了。序列有以下几种:元组,列表,字符串等。注:代码都是在IDE中编辑的,没有用交互式环境。...另外,Python是动态语言,因此元组中各个成员并不需要是同一种类型:a = (1... -
元组中增加元素_04|Python元组常见操作
2020-11-20 07:42:55欢迎关注Pythoner派微信公众号及头条号元组的特性其实和列表非常相似,但是元组中的元素是不可修改的。因此元组其实也可以被看作只读列表上一节中我们把列表当作一个箱子用来存放啤酒。而在这一节中我们会把列表当作... -
如何在Python元组中定义重复项?
2021-04-27 09:47:43定义一个由整数组成的元组(其中每个项的出现次数是已知的)的一些好方法是什么?例如,我想定义一个具有3 2、2 4和1、3、5的元组出现一次。为此,我可以一直采用手动方式:foo = (1, 2, 2, 2, 3, 4, 4, 5)然而,当... -
python 元组的使用方法
2020-11-26 08:21:52元组——tuple列表非常适合... 元组的创建和删除(1)使用赋值运算符直接创建元组语法:tuplename = (element1, element2, element3, ....)在Python中,元组使用一对小括号将所有的元素括起来,但是小括号不是必... -
Python元组详解
2021-09-11 17:38:36Python元组详解简述元组的定义元组的操作访问元组元素元组的切片元组的相关运算符关于元组的一些简单理解元组常用方法结尾 简述 什么是元组,简单的理解就是将一堆数据存放到一个容器中,但这个容器有一个特点,就是... -
Python3基础 tuple 通过拆分元组向元组中加入新的元素
2020-12-06 04:04:24Python : 3.7.0?????????OS : Ubuntu 18.04.1 LTS????????IDE : PyCharm 2018.2.4??????Conda : 4.5.11???typesetting : Markdown?code"""@Author : 行初心@Date : 18-9-23@Blog : www.cnblogs.com/xingchu... -
Python 元组(Tuple)操作详解
2021-01-20 04:13:44元组中只包含一个元素时,需要在元素后面添加逗号来消除歧义复制代码 代码如下:tup1 = (50,);元组与字符串类似,下标索引从0开始,可以进行截取,组合等。二、访问元组元组可以使用下标索引来访问元组中的值,如下... -
Python元组与字典
2021-03-05 21:54:47本文标识:Python_5本文编辑 :Jack风编程工具 :Anaconda、Pycharm阅读时长 :11分钟 元组Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。>>> aTuple = ('a2data'... -
python元组里嵌套元组_Python中的元组
2020-08-02 18:06:23python元组里嵌套元组 Python元组 (Python Tuples) Tuples in Python are a collection of elements in a round bracket() or not but separated by commas. Tuples are similar to list in some operations like ... -
Python元组操作及方法总结
2021-03-17 23:00:19前言:本博文主要讲解Python元组的概念及用法。更多元组细节,请访问:Python操作元组的小细节,您真的知道吗?文章目录一、元组概念二、创建元组三、访问元组四、修改元组五、删除元组六、元组运算符七、元组索引,... -
Python元组练习题
2022-04-13 18:57:571.创建一个元组,分别进行索引、添加、长度计算、切片操作。 2.创建两个元组,进行连接操作。 3.创建一个列表和元组,将其连接后打印出来。 4.使用花括号和set创建各一个集合。 5.分别打印出以下集合的值。 要求:...