python - join() 方法误解
问题描述
我最近在做在线编程挑战。提示是这样的:
给定一个字符串现在是格式为 hh:mm:ss 的时间戳,三个整数 hrs、mins 和 sec 是要添加的小时、分钟和秒,实现一个函数,该函数返回一个字符串作为新调整的时间戳(保持相同格式)。
我的解决方案如下
def time_adjust(now,hrs,mins,sec):
current = [int(i) for i in now.split(":")]
values = [hrs,mins,sec]
limit = (24,60,60)
for i in range(0,3):
current[i] = current[i] + values[i]
if current[i]>limit[i]:
current[i]-=limit[i]
current[i] = str(current[i])
seperator = ':'
print(current)
return(seperator.join(str(current)))
print(time_adjust("5:10:10",10,10,10))
但是,当我运行这个程序时,它会输出
[:':1:5:':,: :':2:0:':,: :':2:0:':]
而不是理想的
"15:20:20"
有人可以向我解释这是为什么吗?
解决方案
您在加入之前将列表转换为字符串。这是连接字符串中的所有字符。
只需加入列表元素:
def time_adjust(now,hrs,mins,sec):
current = [int(i) for i in now.split(":")]
values = [hrs,mins,sec]
limit = (24,60,60)
for i in range(0,3):
current[i] = current[i] + values[i]
if current[i]>limit[i]:
current[i]-=limit[i]
current[i] = str(current[i])
seperator = ':'
print(current)
return(seperator.join(current))
print(time_adjust("5:10:10",10,10,10))
输出
['15', '20', '20']
15:20:20
推荐阅读
- python - Python检查字符串列表是否等于另一个忽略大小写的字符串列表
- pyspark - EMR集群中pytest的使用
- html - Firebase 默认 URL 显示“找不到站点”
- jquery - 点击按钮,根据内容量计算打开高度。按钮区域有问题
- android - Kotlin flow 结合了不同类型的流(stateflow 和 flow,或者 sharedflow 和 flow)
- android - Fluter 应用程序运行错误:任务“:app:compileFlutterBuildDebug”执行失败
- node.js - 为什么 nodejs 的 require 函数中有时会使用“:”
- html - 带有子菜单的水平引导程序 5 导航栏
- python - 使用递归返回斐波那契序列列表的正确方法
- python - 获取 3 个连续数字的所有重叠匹配的列表