本问题已经有最佳答案,请猛点这里访问。

我希望将字符串转换为嵌套元组,例如:

string = 'Jane A 3 B- 3 F 1#Bob C+ 2 D+ 3#Chris C 4 C 3 C- 2'

如您所见,字符串不正常,用符号和空格代替逗号。符号表示名称的数量,我必须计算每个名称后面的一些数据。所以我用string.split('#')创建了3个独立的字符串,从中,我使用了for循环在第一次迭代中得到它:

['A', 3, 'B-', 3, 'F', 1]

列表中缺少"jane"的原因是,我只需要获取值(无论是字符串还是整数),并从中生成嵌套的元组。因此,我希望将此列表转换为一个嵌套的元组,如下所示:

[('A', 3), ('B-', 3), ('F', 1)]

我将非常感谢任何帮助或建议。

+和-的A/B/C/D是什么意思?后面还有一个数字?

我不知道有没有更好的方法,但现在我们开始:

input = ['A', 3, 'B-', 3, 'F', 1]

l1 = input[::2] # get even

l2 = input[1::2] # get odd

tuples = list(zip(l1,l2)) # zip them together

# yes it could be wrote `tuples = list(zip(input[::2],input[1::2]))`

print (tuples)

产量

[('A', 3), ('B-', 3), ('F', 1)]

网上试试!

使用正则表达式

>>> import re

>>> [[(mark, int(count))

for mark, count in map(str.split,

re.findall(r'[A-Z][+-]? \d+', student_data))]

for student_data in string.split('#')]

[[('A', 3), ('B-', 3), ('F', 1)],

[('C+', 2), ('D+', 3)],

[('C', 4), ('C', 3), ('C-', 2)]]

逐步解释

我们把学生(我们叫他们)分开,因为我们需要存储他们的"标记"(或者这些A/B/C/D和+/-是什么意思?)在不同的容器中:

string.split('#')

对于每个学生,我们使用正则表达式搜索"标记"数据

[A-Z][+-]? \d+

读起来像

any capital Latin letter (which optionally may be followed by + or - sign) and a whitespace followed by digits

把它和学生的子字符串传递给re.findall函数。在那之后,我们会有如下的东西:

>>> [re.findall(r'[A-Z][+-]? \d', student_data) for student_data in string.split('#')]

[['A 3', 'B- 3', 'F 1'], ['C+ 2', 'D+ 3'], ['C 4', 'C 3', 'C- 2']]

最后,我们可以使用str.split方法将带有+/-的字母从数字中分离出来,并在这个对上迭代,将第二个坐标转换为int。

进一步阅读

map内置文档。

re模块文档。

是的,正负号是字母等级,我需要写一个函数,它采用一个奇怪的字符串,并确定列表中是否有学生成为院长的列表。到目前为止,我有大约64行代码,函数之间有适当的间隔,但它不起作用。我的意思是,我使用一个助手函数来确定它们的gpa,它以一个元组作为参数。当我手动输入字符串中的元组时,它给出了正确的答案,但是当我尝试在包含字符串函数的程序中返回它时,我得到了一个错误。

我想如果你看到我的代码,你会明白我的意思。我知道我该怎么做,但我觉得我错过了一些微不足道的事情。如果你能帮助我,我会非常感激的。

我以前有一个任务,我必须编写一个函数,它获取元组列表,并使用字典来确定总体GPA。我目前正在做的这个任务是写一个调用前一个函数的函数,看一个学生是否在院长名单上。我只是想把这个参数变成一个帮助函数接受的元组列表,它将返回正确的值,但是它不起作用,而且会让人沮丧。

@Seungsooim:你的密码在哪里?

python列表嵌套元组拆分,将包含整数和字符串的列表转换为嵌套元组Python相关推荐

  1. Python常见的数据类型【数字、布尔、字符串、列表和元组、字典】

    变量用来存储数据,那么大家有没有想过,我们应该让变量占用多大空间,保存什么样的数据呢?在讲解变量的类型之前,我们先来看一个生活中的例子,例如:我们要运送一台电脑,大卡车和小轿车都可以完成,但是,如果使 ...

  2. python 含有文本_python – 查找不包含某些文本字符串的所有文本文件

    我在 Python 2.7.1上,我正在尝试识别所有不包含某些文本字符串的文本文件. 该程序似乎首先工作,但每当我将文本字符串添加到文件时,它就会不断出现,就好像它不包含它一样(误报).当我检查文本文 ...

  3. python基础知识5——赋值与深浅拷贝——整数和字符串,列表元组字典

    深浅copy 和很多语言一样,Python中也分为简单赋值.浅拷贝.深拷贝这几种"拷贝"方式. 在学习过程中,一开始对浅拷贝理解很模糊.不过经过一系列的实验后,我发现对这三者的概念 ...

  4. python全栈学习总结二:数字、字符串、列表、元组、字典重要特点及方法

    一 python中数据类型 整形:int 字符串:str 列表:list 元组:tuple 字典:dict 布尔值:bool 浮点型:float 一切皆对象,在python中,所有的数据类都是看做对象 ...

  5. python怎么判断是不是列表_python判断变量是否为int、字符串、列表、元组、字典等方法...

    在实际写程序中,经常要对变量类型进行判断,除了用type(变量)这种方法外,还可以用isinstance方法判断: #!/usr/bin/env python a = 1 b = [1,2,3,4] ...

  6. Python多进程multiprocessing共享数据Value(包括常用的整数、字符串)、列表及字典以及Queue

    1. 共享Value.列表以及字典 import multiprocessing import ctypes import timedef process_write(int_data, str_da ...

  7. python根据一个基类生成派生类_将基类转换为派生类python(或者更像pythonic的扩展类的方式)...

    下面是如何"神奇地"用定制的子类替换模块中的类,而不接触模块.它只是普通子类化过程中的几行额外代码,因此给了您(几乎)所有子类化的能力和灵活性.例如,如果您愿意,这允许您添加新属性 ...

  8. [python 笔记]:序列详解:字符串,列表,元组,range对象

    目录 序列: 1.索引: 2.标准类型运算: (1)值比较: (2)对象身份比较:is / is not (3)布尔逻辑运算 3.通用序列类型操作: (1)切片: (2)重复(*): (3)连接(+) ...

  9. Python学习笔记——字符串、列表、元组、字典

    字符串介绍 想一想: 当打来浏览器登录某些网站的时候,需要输入密码,浏览器把密码传送到服务器后,服务器会对密码进行验证,其验证过程是把之前保存的密码与本次传递过去的密码进行对比,如果相等,那么就认为密 ...

最新文章

  1. arm的一些概念(ARM7、Cortex-M的区别)
  2. 谭浩强课后题之----求和,其中a是一个数字,n表示a的位数
  3. Python Django Q查询和F查询API
  4. 认证服务器的搭建_SpringCloud搭建的认证中心和资源服务器的微服务项目源码分享...
  5. win10上编译libharu库
  6. c语言获取dll文件路径,C语言URLDownloadToFile获取文件下载进度
  7. 已知圆心 坐标和一点坐标和角度 就之后的坐标_LaTeX 中绘制多个相交椭圆(对起始角度与终止角度的思考)...
  8. 如何监控 Nginx?
  9. Java基础15 Java常用类
  10. ralink网卡驱动 linux,Ralink for linux Usb无线网卡驱动编译
  11. SMART200 DP01模块通讯问题
  12. 视频教程:小型登陆系统(完)
  13. rv1126rv1109开发环境搭建
  14. Flex:对日本旧历日期及其它输入内容的验证。
  15. WPF 控件 (二、按钮)
  16. 报错: Called “net usershare info“ but it failed
  17. 【示波器专题】示波器探头的原理深入——无源探头
  18. Android状态栏定制和修改
  19. 普林斯顿Stata教程(三)-Stata编程
  20. ie8及其以下版本兼容性问题之圆角

热门文章

  1. Docker 简易搭建 ElasticSearch 集群教程
  2. RabbitMQ实现多系统间的分布式事务,保证数据一致性
  3. 这款Java性能调优工具,真的很强!
  4. 对数据类型而言运算符无效。运算符为 add,类型为 text。
  5. 005---基于UDP的套接字
  6. 算法学习之剑指offer(六)
  7. Python之路【第十六篇续】Django进阶篇
  8. java 关于JDBC和DAO模式使用
  9. Shiro学习(24)在线回话管理
  10. poj 1125 Stockbroker Grapevine(Folyd)