在这个问题上尝试了两个小时,迭代,切片和加入字符串列表该代码看起来很完美,但是给出了一个奇怪的输出

如何解决在这个问题上尝试了两个小时,迭代,切片和加入字符串列表该代码看起来很完美,但是给出了一个奇怪的输出

#我的代码

def sec_soc_nam(friends):
  for x in friends:
    return "".join(x[0])

print(sec_soc_nam(["tina","andre",'suzie']))

#output:t

#其他人的解决方

def society_name(friends):
    return ''.join(sorted(i[0] for i in friends))

#ouput期望的结果:“ ast”

注意:忽略排序 迭代无效,仅输出第一项。我检查了一下,但没有组件丢失。

解决方法

如果您这样编写代码

for x in friends:
    return "".join(x[0])

您将只输出第一个字符串(“ tina”)的第一个字符(x [0])

因为返回指令基本上是对您的函数说要在此停止并返回第一个迭代值

仅当您收集了所有起始字符后才应执行返回

"".join(sorted(i[0] for i in friends))

这正是其他函数的作用。

  • first从所有字符串中提取第一个字符(x [0])
  • 然后按字母顺序对字符进行排序(排序)
  • 然后返回这些字符串的串联(返回“” .join)
,

如果您仍然想使用join关键字

def sec_soc_nam(friends):
  a = []
  for x in friends:
    a.append(x[0])
  return "".join(sorted(a))

print(sec_soc_nam(["tina","andre",'suzie']))
,
def sec_soc_nam(friends):
  return " ".join(friends)

print(sec_soc_nam(["tina",'suzie']))

您要为每个循环返回项目,而不是加入整个列表。

x [0]返回项目的首字母

只需print(“” .join([“ tina”,“ andre”,'suzie']))即可为您加入列表

,

您在for循环中有一个返回赋值,因此您的程序在第一个循环后退出该函数,您可以尝试以下方法:

def sec_soc_nam(friends):
   a=''
   for x in friends:
     a=a+x[0]
   return a

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?