Python:作为单个整数的列表长度
我是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
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: