首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环遍历由3项组成的数组,并返回元素之间的唯一区别--Python。

循环遍历由3项组成的数组,并返回元素之间的唯一区别--Python。
EN

Stack Overflow用户
提问于 2022-09-28 06:04:51
回答 1查看 95关注 0票数 0

问题:有一个字符串的数组ABC,BCD,DEG。ABC和BCD之间的区别是相同的,但是在DEG中,它不返回该字符串。

代码语言:javascript
复制
import string

arr = ['ABC','BCD','DEG']
alphabet = string.ascii_uppercase

for phrase in arr:
    for letter in phrase:

大家好。昨天我为极客们遇到了一个关于极客的问题。我一直在努力想出解决办法,但没有成功。我是Python的新手,我很感激在这方面能得到的任何帮助。

我的思考过程如下:

对于数组中的每个元素,在第一个/第二个字母的字母索引之间迭代字母returned.

  • Return
  • ,对于每个元素来说,对于不传递点2的任何元素,都应该等于第二个/第三个字母,而不是任何不传递点2的元素。
EN

回答 1

Stack Overflow用户

发布于 2022-09-28 11:45:43

解决方案:

代码语言:javascript
复制
arr = ['ABC','BCD','DEG']

for phrase in arr:
    chars  = [ord(letter) for letter in phrase]
    deltas = [chars[i+1] - chars[i] for i in range(len(chars)-1)] 
    if len(set(deltas))!=1:
        print(phrase)

退出:

代码语言:javascript
复制
DEG

解释:

chars是包含每个短语中每个字符的Unicode点代码值的列表。对于短语"ABC",这是[65, 66, 67],而对于短语"DEG",它是[68, 69, 71]

deltas是短语中每个相邻字母对之间差异的列表。对于"ABC",这是[1, 1],而对于"DEG",这是[1, 2]

set(deltas)deltas中给出了唯一的值,"ABC"{1}"DEG"{1, 2}。通过检查len(set(deltas))是否等于1,您只返回具有不同三角洲的短语。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73876840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档