【问题标题】:Map values onto others将值映射到其他值
【发布时间】:2020-11-17 20:28:58
【问题描述】:

我有一个值 d,它可以介于 0 和 maxD 之间,还有一个包含字符的列表 l,特别是:

list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,"^`'. ")

我想编写一个函数,它返回 l 中的一个元素 dmaxDmaxD 可能大于或小于 len(l)

这是我想要的,但正确:

def mapChar(d, maxD):
    return l[maxD/d*len(l)]

我正在控制台中渲染 3d 对象,此函数将获取到点 d 的距离和渲染距离 maxD 并从列表中返回 ASCII 着色值。 我可以用什么逻辑来实现它?

【问题讨论】:

  • 您有问题吗?
  • 哇,我的问题的下半部分被砍掉了。不知道这是怎么回事。
  • 我想你只想要d/maxD而不是maxD/d;你基本上想为x解决x/len(l) == d/maxD
  • x 必须是 int,在这种情况下,如果两个值都是 ints,您将需要 d // maxD,或者如果两者都可以是 float,则需要 int(d/maxD) .
  • dmaxD 都是 int。所以我会做l[d//maxD*len(l)]?

标签: python arrays python-3.x list dictionary


【解决方案1】:

我发现l[d*len(l)//maxD] 工作。

【讨论】:

  • 请不要添加“谢谢”作为答案。相反,您认为最有帮助的 accept the answer。 - From Review
  • 没有人建议这个答案。它的灵感来自“chepner”的评论。
  • 这完全是可选的,实际上只是礼仪问题,但是在代表评论者发布答案时,我经常会将我的答案标记为社区 wiki,因为这不是我的原创贡献。无论如何,我感谢将 cmets 的正确答案提升为答案,以便可以将问题标记为已回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-22
  • 2011-08-07
  • 1970-01-01
  • 2012-02-15
  • 2023-02-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多