题解 | 多组_带空格的字符串_T组形式

多组_带空格的字符串_T组形式

https://www.nowcoder.com/practice/cff28a28d7f54419a640a8bb19f4275f

# 接收整数t
t = int(input().strip())

for _ in range(t):
    n = int(input().strip())
    str = input().split()
    #每个单词单独反转
    str = [s[::-1]for s in str]
    #单词之间顺序反转
    str=str[::-1]
    #拼接输出,将字符串列表合成一个字符串,需要用到join()函数
    print("".join(str))

str = input().split()接收到的是一个忽略了空格的字符串列表。

接收完后只需要反转这个列表中的每一个字符串,然后再把这个列表反转(切片反转大法好),最终拼接输出即可。

每一个字符串字符串使用列表推导反转(这样做会创建新的字符串)

列表推导反转

  • 列表推导[expression for item in iterable] 创建新列表,不修改原 iterable
  • 示例:

“反转原来的strlist”?No,实际上是创建了新的

  • 重新赋值:如果写 str_list = [s[::-1] for s in str_list],新列表赋值给 str_list,变量指向新对象,原对象可能被垃圾回收。
  • 原列表对象:不变,但变量名指向新列表。“反转”的是变量的内容。

如果想真正修改原列表?

  • 用循环 + 索引:
str_list = ["hello", "world"]
for i in range(len(str_list)):
    str_list[i] = str_list[i][::-1]  # 修改原列表元素
print(str_list)  # ["olleh", "dlrow"]
全部评论

相关推荐

10-31 20:07
门头沟学院 Java
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务