找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3452|回复: 2

[求助] 向各位大神求助!如何实现以下功能!

1

主题

2

帖子

2

积分

贫民

积分
2
waitohahaha 发表于 2017-6-18 08:46:49 | 显示全部楼层 |阅读模式
新人第一次求助!
请问怎么样才能实现如下功能:

例子:
        输入数据为data = [( a , 4), ( b , 5), ( c , 1), ( d , 3), ( e , 2), ( f ,6)]
使用函数 matchingdata
得到结果[(0,4), (1,2), (3,5)]
Matching函数通过判断数组内元素字母首先将元音字母aeiou和其他字母区分为两类,并判断两个同种类型字母所带的数相加是否为3的倍数,如果是,则返回两字母在元素内所对应的位置(如:a(位置0)和e(位置4 a = 4e=24+2 = 6 则返回(04))


如果可以麻烦给出具体代码,小弟感激不尽!!!

回复

使用道具 举报

1419

主题

1891

帖子

291

积分

侠客

积分
291

最佳新人热心会员默默耕耘

whydo1 发表于 2017-6-18 11:30:26 | 显示全部楼层
  1. data = [( 'a' , 4), ( 'b' , 5), ( 'c' , 1), ( 'd' , 3), ( 'e' , 2), ( 'f' ,6)]
  2. datadict =dict(data)

  3. 元音字母 = 'aeiou'

  4. 结果=[]

  5. for i in data:

  6.     for j in data[data.index(i)+1:]:
  7.         第一个数 = i[1]
  8.         第二个数 = j[1]
  9.         数字之和可以被6整除 = (第一个数 + 第二个数) % 6 == 0
  10.         第一个是元音 = False
  11.         第二个是元音 = False
  12.         
  13.         try:
  14.             元音字母.index(i[0])
  15.         except:
  16.             第一个是元音 = True

  17.         try:
  18.             元音字母.index(j[0])
  19.         except:
  20.             第二个是元音 = True

  21.         if 第一个是元音 and 第二个是元音 and 数字之和可以被6整除:
  22.             结果.append((data.index(i),data.index(j)))
  23.         elif not(第一个是元音) and not(第二个是元音) and 数字之和可以被6整除:
  24.             结果.append((data.index(i),data.index(j)))

  25. print(结果)
复制代码
python3.4.4, win10
回复 支持 反对

使用道具 举报

1

主题

2

帖子

2

积分

贫民

积分
2
waitohahaha  楼主| 发表于 2017-6-19 02:11:08 | 显示全部楼层
多谢多谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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