鱼C论坛

 找回密码
 立即注册
楼主: 新手·ing

[技术交流] Python:每日一题 78(答题领鱼币)

[复制链接]
发表于 2019-8-20 11:37:16 | 显示全部楼层
  1. index=('zero','one','two','three','four','five','six','seven','eight','nine')
  2. def average_string(string):
  3.         try:string=string.split(' ');return index[sum((index.index(i)for i in string))//len(string)]
  4.         except:return'n / a'
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-20 11:39:54 | 显示全部楼层
哇哇哇我竟然和大神解法一样!好激动!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-28 22:04:38 | 显示全部楼层
def average_string(string:str):
    dict_num ={'one':1,'two':2,'three':3,'four':4,'five':5,'six':6,'seven':7}
    total =[]
    temp = string.split(' ')
    count = 0
    for each in temp:
        if each not in dict_num:
            return 'n/a'
        else:
            total.append(dict_num[each])
            count+=1
    a = sum(total)//count
   
    return ''.join([k for (k,v) in dict_num.items() if v == a])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-29 04:15:52 From FishC Mobile | 显示全部楼层
看大神
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-12 11:46:15 | 显示全部楼层
  1. def f_78(string):
  2.     lst = ['zero', 'one', 'two', 'three', 'four',
  3.            'five', 'six', 'seven', 'eight', 'nine']

  4.     key = string.split(' ')
  5.     try:
  6.         return lst[int(sum([lst.index(i) for i in key]) / len(key))]
  7.     except ValueError:
  8.         return "n/a"


  9. print(f_78('one three two'))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-13 19:43:51 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-13 21:11:32 | 显示全部楼层
很好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-14 23:00:56 | 显示全部楼层
想看回帖
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-15 00:13:02 | 显示全部楼层
本帖最后由 楽叁 于 2020-3-15 00:23 编辑
  1. import re

  2. dicts = (‘zero’,'one', 'two', 'three', 'four', 'five',
  3.          'six', 'seven', 'eigth', 'night')
  4. string = 'one three two'
  5. string1 = 'five five five'
  6. string2 = 'ku fthj two'
  7. string3 = 2


  8. def average_string(strs):
  9.     if type(strs) != str:
  10.         return '请输入英文数字,以空格隔开'
  11.     strs = strs.strip()
  12.     strs_list = re.findall(r'\w+', strs)
  13.     acount = 0
  14.     for num in strs_list:
  15.         if num not in dicts:
  16.             return 'n / a'
  17.         else:
  18.             acount += dicts.index(num)

  19.     nums = int(acount / len(strs_list))
  20.     return dicts[nums]


  21. print(average_string(string))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-29 17:04:43 | 显示全部楼层
# 输入字符串以空格分隔,转化为列表
# 新建一个字典,英文字符串为键,阿拉伯数字为值。
# 转化英文数字字符串为阿拉伯数字,求平均数。
import numpy as np

def average_string(st_num):
    st_num_list = st_num.split(' ')
    num_dic = {'zero': 0, 'one': 1, 'two': 2, 'three': 3, 'four': 4,'five': 5, 'six': 6, 'seven': 7, 'eight': 8, 'nine': 9}
    st_num_trans = [num_dic[i] if i in num_dic.keys() else i for i in st_num_list]
    for j in st_num_trans:
        if str(j).isalpha():
            return "'n/a'"
    else:
        ave = np.mean(st_num_trans)
        return ave

#st_num = input('请输入英文数字字符串: ')
st_num = 'one three two'
print(average_string(st_num))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-31 10:55:54 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-31 13:05:13 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-2 09:31:07 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 16:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表