我想在水平和每三个键上打印字典的键以创建一个新行。我这样写的是:
SELECT
(row_number() over (order by 'Fruit')) AS 'Id' ,
'Fruit'
FROM
(
SELECT 'Fruit'
FROM myTable GROUP BY 'Fruit'
) t
然而,输出只是水平的,每三个数字之间有两个换行符。
我想要的输出是:
123
456
789
答案 0 :(得分:0)
fields= {1 : "not", 2 : "not", 3 : "not",
4 : "not", 5 : "not", 6 : "not",
7 : "not", 8 : "not", 9 : "not"}
for Key,values in fields.items():
print(Key, end = "")#python3 , if in python2 use print item, instead.
if Key%3==0:
print ("\n")
123
456
789
答案 1 :(得分:0)
如果您使用python 3,或导入python 2的打印功能,您可以指定print的结束参数,如下所示:print(i, end="")
,字典键之间不会有换行符。
但由于字典键没有排序,它们将以“随机”顺序打印,以避免这种情况,制作一个键列表,并在打印前对其进行排序,如下所示:keys = sorted(dict.keys())
答案 2 :(得分:0)
print (i),
将为您解决问题。另外,您的代码缩进不正确。
fields= {1 : "not", 2 : "not", 3 : "not",
4 : "not", 5 : "not", 6 : "not",
7 : "not", 8 : "not", 9 : "not"}
for i in fields:
print (i),
if i%3==0:
print ("\n")`
答案 3 :(得分:0)
虽然解决方案适用于特定情况,但我想向您解释一下。
python中的dictionary
没有订购。在这种情况下它很好,因为你用简单的1,2,3...
键声明它的方式。你可以思考那是怎么运作的。 否强>!
>>> a = {1 : "not", 2 : "not", 3 : "not",4 : "not", 5 : "not", 6 : "not",7 : "not", 8 : "not", 9 : "not"}
>>> a
{1: 'not', 2: 'not', 3: 'not', 4: 'not', 5: 'not', 6: 'not', 7: 'not', 8: 'not', 9: 'not'}
很好,所以在这种情况下,所有解决方案都可行。但是,如果您认为相同并尝试使用以下dict
>>> a= {12 : "not", 21 : "not", 30 : "not",4 : "not", 15 : "not", 61 : "not",71 : "not", 8 : "not", 19 : "not"}
输出将以相同的顺序不。
>>> a
{19: 'not', 4: 'not', 21: 'not', 71: 'not', 8: 'not', 12: 'not', 61: 'not', 30: 'not', 15: 'not'}
如果您尝试使用for keys in a:
进行迭代和打印,则会遇到很多问题。
所以你想要所需的输出(dict没有排序那么不可预测)使用OrderedDict
from collections import OrderedDict
fields = [(1, 'not'), (2, 'not'), (3, 'not'),
(4, 'not'), (5, 'not'), (6, 'not'),
(7, 'not'), (8, 'not'), (9, 'not')]
a = OrderedDict(fields)
for i,key in enumerate(a):
print(key,end='')
i+=1
if i%3==0:
print()
输出:
123
456
789
还应使用enumerate()
来打印每三个值。不要依赖钥匙。如果你改变了怎么办?
i,枚举(字典)的键只是给出了0,key1
,1,key2
,2,key3
,...等值。只需提供一对数字,即所有项目。
尝试更改密钥并使用此代码和其他代码,您将注意到此更改的结果与此解决方案相同。而不是其他人。 请记住总是您的代码应该具有适应性。不应该完全依赖于特定的输入集
123
456
789
如果您希望将它们分隔为换行符,那么注意只会print()
。如果你想在它们之间留一个间隙(换行符),请使用`print(" \ n")。
123
456
789