首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问for循环中的下一个值

如何访问for循环中的下一个值
EN

Stack Overflow用户
提问于 2021-10-21 17:13:31
回答 7查看 94关注 0票数 0

所以我试图得到一个句子中单词的第一个字母(不包括第一个单词,我已经解决了这个问题)。

但它会将空格附加到列表中。

如果你能帮忙我会很感激的。

代码如下:

代码语言:javascript
复制
lst = []

for t in (input()):
    if t == " ":
     lst.append(t)

print(*lst, sep="")

input1:asd dfd yjs

output1:dy

EN

回答 7

Stack Overflow用户

发布于 2021-10-21 17:22:10

就是这样:

代码语言:javascript
复制
''.join([s[0] for s in input().split()[1:]])

分步执行:

如果input()返回asd dfd yjs

拆分字符串(more):

代码语言:javascript
复制
input().split() # output: ['asd', 'dfd', 'yjs']

子列表(more):

代码语言:javascript
复制
input().split()[1:] # output: ['dfd', 'yjs']

单行循环(more):

代码语言:javascript
复制
[s[0] for s in ['dfd', 'yjs']] # output: ['d', 'y']

子字符串(more):

代码语言:javascript
复制
s="dfd"
s[0] # output: d

字符串串接列表(more):

代码语言:javascript
复制
''.join(['d', 'y']) # output: dy
票数 4
EN

Stack Overflow用户

发布于 2021-10-21 17:20:28

你可以

使用切片将句子拆分成单词(从索引1到结尾),然后只保留每个单词的第一个字符,并将其连接到结果字符串x.split()

  • remove

代码语言:javascript
复制
x = input(">")
result = ""
for word in x.split()[1:]:
    result += word[0]
print(result)  # dy

使用生成器和str.join

代码语言:javascript
复制
x = input(">")
result = ''.join(word[0] for word in x.split()[1:])
票数 2
EN

Stack Overflow用户

发布于 2021-10-21 17:29:43

你得到了空间,因为这是你所要求的。大声朗读你的代码,它可能会有意义:

代码语言:javascript
复制
if t == " ":
    lst.append(t)

如果t是一个空格,则将其附加到lst

看起来很清楚,你只能得到空格。

您希望追加t后面的字符。使用for循环方法有两种方法可以做到这一点: 1)如果t是一个空格,则追加下一个字符;2)如果前一个字符是空格,则追加t。下面是你可以如何实现#2:

代码语言:javascript
复制
lst = []

prev_char = None
for t in (input()):
    if prev_char == " ":
        lst.append(t)
    prev_char = t

print(*lst, sep="")

这将打印除第一个单词之外的每个单词的第一个字符。将last_char初始化为包含第一个单词的空格。

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

https://stackoverflow.com/questions/69666174

复制
相关文章

相似问题

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