python中如何让一个list里的数字部分相加

还有如何让list中的某个元素等于另一个?比如['2D','3S','4D','QD','0S','JD']我想求每个单独元素的第一个的和该怎么弄(2,3,4,Q,0,J... 还有如何让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
展开
 我来答
freechan10
2020-01-04 · TA获得超过2.9万个赞
知道小有建树答主
回答量:263
采纳率:68%
帮助的人:12.9万
展开全部

1、创建python文件,testsum.py;

2、编写python代码,初始化list内容;

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

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

3、编写函数,进行list内容求和;

def func(li):

   nums = []

   result = 0

   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]

         result += int(dt.get(tp))

      else:

         nums.append(tp)

         result += int(tp)

   print('单独出来的数字',nums)

   print('转换后的求和值',result)

func(test)

4、右键选择‘在终端中运行Python文件’;

5、执行后查看执行结果,可以发现求和后数据值。

雪飞潇潇
2017-05-15 · TA获得超过6275个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:872万
展开全部

可以根据字符串切片操作,来剥离第一个数字和第二个字母

参考代码.我再次发给你吧

#!/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']
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
其实我是一头猪
2017-05-15 · TA获得超过897个赞
知道小有建树答主
回答量:82
采纳率:100%
帮助的人:97.8万
展开全部

楼主你好!

重要的计算逻辑都写在代码中了,请参考:

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

'''数据准备'''
trans_map = {'Q': 12, 'J':11, '0': 10}
target_list = ['2D', '3S', '4D', 'QD', '0S', 'JD']

sum_value = 0
for single_str in target_list:
    '''取出列表中数字的第一个'''
    operate_num = single_str[0]
    '''如果需要转换,则按转换规则取数
    否则,直接求和'''
    if trans_map.has_key(operate_num):
        sum_value += trans_map[operate_num]
    else:
        sum_value += int(operate_num)
'''打印结果'''
print sum_value

如有问题,欢迎追问,望采纳,谢谢!

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式