我对 Python 有点陌生。我看到了以下代码,但不明白如何使用“列表”对字符串进行排序。
lookup = defaultdict(list)
## Filling the lookup
# .....
# .....
inputs = ['abc', 'acb', 'acb'] # a list of strings
result = ''.join(sorted(inputs[0], key=lookup.get))
Run Code Online (Sandbox Code Playgroud)
我不明白的是最后一行是关键部分。我知道它根据列表中的值进行字典排序。如果有人可以解释它或将此步骤分解为更具可读性的解决方案,我将不胜感激。
例如,如果查找表如下所示:
{'a' : [-3, 0, 0], 'b': [0, -1, -2], 'c': [0, -2, -1]}
Run Code Online (Sandbox Code Playgroud)
那么结果将是这个 acb
我有一个事件的纪元时间,以eventTime秒为单位,区域(事件的位置)为userZone。我需要检查某个活动是否符合资格。仅当事件在当天结束之前发生(考虑到用户所在的区域)时,事件才符合资格。由于纪元时间采用 UTC 格式,因此需要将其转换为时区时间,然后在该时区中查找一天的开始和结束。Java中有一个库ZonedDateTime。
我需要实现的是:
- Get eventTime in epoch (UTC) => getEventTime(event)
- Get the userZone (for example CDT or EST) => getUserZone(user)
- Convert eventTime to the local time of the user => getEventInLocalTime(eventTime, userZone)
- Get end of the day time for userZone => getEndOfToday(userZone)
- if (0 <= eventLocalTime <= endOfToday) return True
Run Code Online (Sandbox Code Playgroud)
有人曾经ZonedDateTime帮助过这个逻辑吗?我实现了一些逻辑,但不确定它,因为ZonedDateTime我不清楚当天结束时返回的对象。基本上,我想要达到的目标是,如果两个不同时区的两个用户在同一纪元时间触发事件,那么显然,具有较早时区的用户将有资格获得更少的时间。
我正在寻找一种从 Scala 中的另一台机器(远程客户端)中的一台机器(客户端)进行查询的方法。像这样的查询:
df1 = sql(s"select * from database.table_name")
Run Code Online (Sandbox Code Playgroud)
表及其数据库位于不同平台的位置。
任何建议或解决方案?