【问题标题】:Funktion returning strings, with specific lines in betweenFunktion 返回字符串,中间有特定的行
【发布时间】:2017-08-22 11:23:58
【问题描述】:

我正在尝试创建一个函数,该函数正在返回(并计算更多字符串):

<ul>
<li>first string</li>
<li>second string</li>
</ul>

我在打印功能工作时遇到了一些麻烦,所以它在不同的行上打印 list1 的内容和我的功能。这是我得到的:

#define the  html_list function
def html_list(input_list):
    for each in range(len(input_list)):
        input_list[each] = ('<li>' + input_list[each] + '</li>')
    return input_list

list1 = html_list(['string1', 'string2', 'string3'])

print('<ul>')
for element in list1:
    print(element.title)
print('</ul>')

它正在返回:

<ul>
<built-in method title of str object at 0x102283b70>
<built-in method title of str object at 0x102283bb8>
<built-in method title of str object at 0x102283c00>
</ul>

希望你能帮助我

【问题讨论】:

  • 这是功能,不是功能。 Funktion 是德语(以及其他一些我不知道的语言)
  • 感谢您的帮助 - 它也是丹麦语...
  • 函数html_list中的代码可以重写为return ['&lt;li&gt;{}&lt;/li&gt;'.format(each) for each in input_list]。然后确保使用title()调用函数。

标签: python python-3.x python-3.6


【解决方案1】:

您需要element.title() 才能使其成为一个函数。您刚刚引用了 .title 因此您的错误。

当您更改为 print(element.title()) 时,您的代码可以正常工作。

如果您不想在&lt;Li&gt; 中使用大写 L,那么您可以将代码更改为以下内容:

def html_list(input_list):
    for each in range(len(input_list)):
        input_list[each] = ('<li>' + input_list[each].title() + '</li>')
    return input_list

list1 = html_list(['string1', 'string2', 'string3'])

print('<ul>')
for element in list1:
    print(element)
print('</ul>')

【讨论】:

  • 是的,它会起作用,但它会将&lt;li&gt; 替换为&lt;Li&gt;。
  • 你能不能在 html_list() 中不使用.title(),这样它只会在添加到标签之前给内容命名?
  • 我还是做不出小L,因为我还在用你的方法Matthias使用title()函数
  • 不要使用原来的 title() ,因为这样就失去了意义。在 html_list 循环中将.title() 移动到input_list[each] 之后,它可以完美运行。我会更新我的答案,以便您理解我的意思。
  • 现在代码可以写成return ['&lt;li&gt;{}&lt;/li&gt;'.format(each.title()) for each in input_list]。
【解决方案2】:

您应该在打印之前连接列表中的所有字符串。

试试这个

print (''.join( for element in add))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2021-10-07
    • 1970-01-01
    • 1970-01-01
    • 2023-02-25
    • 2011-06-10
    • 1970-01-01
    相关资源
    最近更新 更多