1. 程式人生 > 實用技巧 >Flink基礎(二十六):FLINK SQL(二)查詢語句(二)操作符(一)

Flink基礎(二十六):FLINK SQL(二)查詢語句(二)操作符(一)

此文轉載自:https://blog.csdn.net/weixin_43838715/article/details/110220205

一、採用兩種方法,對整數list列表[0, 1, 2, … , 99999]中的各項求平方。

# 方法一:
dtList = list(range(100000))
for i in dtList:
    dtList[i] = dtList[i] * dtList[i]
# 方法二:
dtList = [i*i for i in range(100000)]

“方法一”用時約40毫秒,“方法二”用時約7毫秒。後者只用了前者的***六分之一***左右的時間。

列表推導式高效!

二、列表推導式中,當for迴圈遭遇if時。

# 整數列表1至10,對偶數平方,對奇數不變:
dtList = [i ** 2  if (i % 2) == 0 else i
          for i in range(1, 11)]
print(dtList)

# if在for前:用於對for迴圈結果的轉換
# 輸出結果如下所示:
[1, 4, 3, 16, 5, 36, 7, 64, 9, 100]
# 整數列表1至10,對偶數平方,對奇數丟棄:
dtList = [i ** 2  
          for i in range(1, 11) if (i % 2) == 0]
print(dtList)

# if在for後:用於對for迴圈結果的過濾
# 輸出結果如下所示:
[4, 16, 36, 64, 100]
if在前是轉換(影響“值”),if在後是過濾(影響“量”)。

三、採用多層for迴圈,列印漂亮的九九乘法口訣表。

print(
    ''.join(
                [
                '{}x{}={:<4}{}'.format(col, row, col * row, '\n' if row == col else '')
                 for row in range(1, 10)
                     for col in range(
1, row+1) ] ) ) # 打印出非常規整、漂亮的九九乘法口訣表:
1x1=1   
1x2=2   2x2=4   
1x3=3   2x3=6   3x3=9   
1x4=4   2x4=8   3x4=12  4x4=16  
1x5=5   2x5=10  3x5=15  4x5=20  5x5=25  
1x6=6   2x6=12  3x6=18  4x6=24  5x6=30  6x6=36  
1x7=7   2x7=14  3x7=21  4x7=28  5x7=35  6x7=42  7x7=49  
1x8=8   2x8=16  3x8=24  4x8=32  5x8=40  6x8=48  7x8=56  8x8=64  
1x9=9   2x9=18  3x9=27  4x9=36  5x9=45  6x9=54  7x9=63  8x9=72  9x9=81  



                        列表推導式的優勢:

                        - 高效
                        - 簡潔
                        - 表達能力強

                        列表推導式的劣勢:程式碼可讀性稍差