Python:作为单个整数的列表长度

Python:作为单个整数的列表长度,python,python-3.x,Python,Python 3.x,我是Python新手,我尝试将列表的长度作为单个整数输出,例如: l1 = ['a', 'b', 'c'] len(l1) = 3 但是,它是在cmdline上打印的,页面下方为1,例如: 1. 1. 1. 1. 1. 1. 等 如何让它只输出数字而不是1的列表 (以下是代码:) 理想情况下,我希望它以打印形式输出数字,以便我可以格式化它,也称为: print("Attack 1: " + length1) 以下是打印长度的函数: def print_length(): if ti

我是Python新手,我尝试将列表的长度作为单个整数输出,例如:

l1 = ['a', 'b', 'c'] 
len(l1) = 3
但是,它是在cmdline上打印的,页面下方为1,例如: 1. 1. 1. 1. 1. 1. 等

如何让它只输出数字而不是1的列表

(以下是代码:)

理想情况下,我希望它以打印形式输出数字,以便我可以格式化它,也称为:

print("Attack 1: " + length1)

以下是打印长度的函数:

def print_length():
    if time in line and failedPass in line:    
        if dateHour == 'Feb  3 08':
           countAttack1.append(time)
    length1 = len(countAttack1)
    print(length1)
print_length()
>>>Print length of the List.

我认为你在循环,如果在循环中。如果是这样,只需打印循环范围外的长度。
请分享完整的代码,以获得更好的答案。正如赛义德·阿卜杜勒·瓦哈布所说,问题在于每次循环都会重新创建“列表”。这使得打印报告“1”,因为它是列表的实际长度。 另一个问题是,重复打印是类似的-您实际上正在打印“循环中的每一次”

解决方案很简单:在循环外部初始化列表;并在循环外进行报告

def Q3():
  from datetime import datetime, timedelta 
  inputauth = open("auth.log", "r") 
  authStrings = inputauth.readlines() 

  failedPass = 'Failed password for'
  countAttack1 = []  # after this line the countAttack will be empty
  for line in authStrings:
    time = line[7:15]
    dateHour = line[0:9]

    if time in line and failedPass in line:
      if dateHour == 'Feb  3 08':
        countAttack1.append(time)

  length1 = len(countAttack1)
  print("Attack 1: " + str(length1))
我还想花一点时间将您链接到,虽然文档很复杂,但这将使打印更容易,上面的打印内容被转换为:

print("Attack 1: {0}".format(length1))

进一步分析代码会给出一些特性,您可以检查
time
是否在
字符串中。-但是,您只需在上面的几行代码中创建
时间
,它将始终位于
内。(除了边线长度不正确的情况,但无论如何都会出错)。因此,if语句应简化为:

    if failedPass in line:

countAttack1是如何创建的?-代码的格式也不正确
len(list)
应该可以正常工作-因此错误一定是因为您没有实际创建列表。它是if语句之外的一个变量-countAttack1=[]-如何检查是否正在创建列表?我需要检查什么?显示完整的代码,从创建countattack1的地方完成,以及需要在某个地方的循环(否则您将看不到1,忽略递归atm)。以
def…
开始的完整函数…好的,我编辑了它以显示完整的代码-我不知道缩进应该/不应该在哪里,因为我现在意识到它陷入了循环,这就是为什么它不起作用,但我不知道如何修复它。非常感谢!这是固定的,我会有一个通过你张贴的链接也看看,谢谢@Lou忽略上面的部分并向下滚动到那里的示例,通过示例学习它要容易得多。
    if failedPass in line: