python将一个list分成多个_python里如何把一个list分成两个

匿名用户

1级

2017-05-16 回答

思考,用正则表达式,把字符串里的数字提前出来. 数字排序之后,如果第一个和最后一个相等,那么数字部分就完全相等

参考代码

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# python 2.7

import re

def func(li):

nums = []

for s in li:

s = re.findall(r'\D*(\d+)\D*',s)

nums.append(int(s[0]))

print nums

# 排序

nums.sort()

# 如果排序后,第一个和最后一个相等,那么就完全相等

if nums[0] == nums[-1]:

print True,"数字完全相等"

else:

print False,"数字不全部相等"

test1 = ['2C', '2S', '2H']

test2 = ['A3C', 'D2S', 'C2H']

func(test1)

func(test2)测试

[2, 2, 2]

True 数字完全相等

[3, 2, 2]

False 数字不全部相等

追问:

我发现还忽略了个问题如果list当中有的元素不包含数字怎么办?或者如何让list中的某个元素等于另一个?

比如['2D', '3S', '4D', 'QD', '0S', 'JD']

我想求每个单独元素的第一个的和该怎么弄(2,3,4,Q,0,J)

让Q=12,J=11,0=10

2+3+4+Q+0+J=2+3+4+12+10+11=32

追答:

根据你的新需求写的参考代码

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# python 2.7

import re

def func(li):

nums = []

for index, s in enumerate(li):

tp = s[0]

if tp in dt:

nums.append(dt.get(tp))

li[index] = dt.get(tp)+s[1]

else:

nums.append(tp)

print "单独出来的数字",nums

print "修改出来的数据",li

dt = {"0": "10", "J": "11", "Q": "12"}

test = ['2D', '3S', '4D', 'QD', '0S', 'JD']

func(test)测试输出

单独出来的数字 ['2', '3', '4', '12', '10', '11']

修改出来的数据 ['2D', '3S', '4D', '12D', '10S', '11D']

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值